<?xml version="1.0" encoding="UTF-8"?>
<model modelUID="r:2f397118-33ae-4116-ae94-4b772c29c8a9(ASN.generator.template.main@generator)">
  <persistence version="3" />
  <refactoringHistory />
  <language namespace="b401a680-8325-4110-8fd3-84331ff25bef(jetbrains.mps.lang.generator)" />
  <language namespace="f3061a53-9226-4cc5-a443-f952ceaf5816(jetbrains.mps.baseLanguage)" />
  <language namespace="d7706f63-9be2-479c-a3da-ae92af1e64d5(jetbrains.mps.lang.generator.generationContext)" />
  <language namespace="13744753-c81f-424a-9c1b-cf8943bf4e86(jetbrains.mps.lang.sharedConcepts)" />
  <language namespace="7866978e-a0f0-4cc7-81bc-4d213d9375e1(jetbrains.mps.lang.smodel)" />
  <language namespace="ceab5195-25ea-4f22-9b92-103b95ca8c0c(jetbrains.mps.lang.core)" />
  <language namespace="da8ceeba-3b3b-4979-995d-22ce7774e01d(ASN)" />
  <language namespace="760a0a8c-eabb-4521-8bfd-65db761a9ba3(jetbrains.mps.baseLanguage.logging)" />
  <language namespace="83888646-71ce-4f1c-9c53-c54016f6ad4f(jetbrains.mps.baseLanguage.collections)" />
  <language namespace="fd392034-7849-419d-9071-12563d152375(jetbrains.mps.baseLanguage.closures)" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c89590338(jetbrains.mps.baseLanguage.closures.structure)" version="3" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c8959028c(jetbrains.mps.lang.structure.constraints)" version="11" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c895902e8(jetbrains.mps.lang.generator.structure)" version="2" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c895902ba(jetbrains.mps.lang.sharedConcepts.constraints)" version="0" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c895902c1(jetbrains.mps.baseLanguage.constraints)" version="83" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c89590283(jetbrains.mps.lang.core.constraints)" version="2" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c89590301(jetbrains.mps.lang.smodel.structure)" version="16" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c895902fb(jetbrains.mps.lang.smodel.constraints)" version="21" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c895902bc(jetbrains.mps.lang.sharedConcepts.structure)" version="0" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c89590292(jetbrains.mps.lang.structure.structure)" version="0" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c895902f3(jetbrains.mps.lang.generator.generationContext.structure)" version="0" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c89590334(jetbrains.mps.baseLanguage.closures.constraints)" version="2" />
  <languageAspect modelUID="r:a0195228-8fdd-4c86-b365-db9fe13c8098(ASN.structure)" version="4" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" version="0" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c895902db(jetbrains.mps.baseLanguage.blTypes.constraints)" version="0" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c895902e2(jetbrains.mps.lang.generator.constraints)" version="16" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c895902ca(jetbrains.mps.baseLanguage.structure)" version="3" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c8959034b(jetbrains.mps.lang.quotation.structure)" version="0" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c895902b4(jetbrains.mps.lang.typesystem.structure)" version="3" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c89590340(jetbrains.mps.lang.pattern.constraints)" version="2" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c8959032e(jetbrains.mps.baseLanguage.collections.structure)" version="7" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c8959033d(jetbrains.mps.lang.annotations.structure)" version="0" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c89590328(jetbrains.mps.baseLanguage.collections.constraints)" version="6" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c89590345(jetbrains.mps.lang.pattern.structure)" version="0" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c895902ae(jetbrains.mps.lang.typesystem.constraints)" version="17" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c8959057f(jetbrains.mps.baseLanguage.logging.structure)" version="0" />
  <maxImportIndex value="31" />
  <import index="3" modelUID="r:2f397118-33ae-4116-ae94-4b772c29c8a9(ASN.generator.template.main@generator)" version="-1" />
  <import index="4" modelUID="r:c1f894d1-f3b9-4d18-a511-78be0ad50d06(ASN.behavior)" version="-1" />
  <import index="5" modelUID="f:java_stub#java.lang(java.lang@java_stub)" version="-1" />
  <import index="7" modelUID="f:java_stub#jetbrains.mps.smodel(jetbrains.mps.smodel@java_stub)" version="-1" />
  <import index="8" modelUID="f:java_stub#java.util(java.util@java_stub)" version="-1" />
  <import index="22" modelUID="f:java_stub#asn.types(asn.types@java_stub)" version="-1" />
  <import index="23" modelUID="f:java_stub#asn(asn@java_stub)" version="-1" />
  <import index="30" modelUID="f:java_stub#asn.values(asn.values@java_stub)" version="-1" />
  <import index="31" modelUID="r:00000000-0000-4000-0000-011c89590282(jetbrains.mps.lang.core.behavior)" version="-1" />
  <visible index="2" modelUID="r:00000000-0000-4000-0000-011c895902ca(jetbrains.mps.baseLanguage.structure)" />
  <visible index="3" modelUID="r:a0195228-8fdd-4c86-b365-db9fe13c8098(ASN.structure)" />
  <node type="jetbrains.mps.lang.generator.structure.MappingConfiguration" id="867789194274456974">
    <property name="name" value="ModuleDefinition" />
    <property name="topPriorityGroup" value="false" />
    <node role="mappingLabel" type="jetbrains.mps.lang.generator.structure.MappingLabelDeclaration" id="8879198192717261064">
      <property name="name" value="module_definition" />
      <link role="targetConcept" targetNodeId="2v.1068390468198" resolveInfo="ClassConcept" />
      <link role="sourceConcept" targetNodeId="3v.903970212124558174" resolveInfo="ModuleDefinition" />
    </node>
    <node role="rootMappingRule" type="jetbrains.mps.lang.generator.structure.Root_MappingRule" id="193653467006771342">
      <link role="applicableConcept" targetNodeId="3v.903970212124558174" resolveInfo="ModuleDefinition" />
      <link role="template" targetNodeId="193653467006773521" resolveInfo="ModuleDefinition" />
      <link role="labelDeclaration" targetNodeId="8879198192717261064" resolveInfo="module_definition" />
    </node>
    <node role="preMappingScript" type="jetbrains.mps.lang.generator.structure.MappingScriptReference" id="8210282642554034946">
      <link role="mappingScript" targetNodeId="8210282642554033713" resolveInfo="Preprocessing" />
    </node>
  </node>
  <visible index="4" modelUID="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" />
  <node type="jetbrains.mps.baseLanguage.structure.ClassConcept" id="193653467006773521">
    <property name="name" value="ModuleDefinition" />
    <node role="visibility" type="jetbrains.mps.baseLanguage.structure.PublicVisibility" id="193653467006773522" />
    <node role="constructor" type="jetbrains.mps.baseLanguage.structure.ConstructorDeclaration" id="193653467006773523">
      <node role="returnType" type="jetbrains.mps.baseLanguage.structure.VoidType" id="193653467006773524" />
      <node role="visibility" type="jetbrains.mps.baseLanguage.structure.PublicVisibility" id="193653467006773525" />
      <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="193653467006773526" />
    </node>
    <node role="rootTemplateAnnotation$attribute" type="jetbrains.mps.lang.generator.structure.RootTemplateAnnotation" id="193653467006773527">
      <link role="applicableConcept" targetNodeId="3v.903970212124558174" resolveInfo="ModuleDefinition" />
    </node>
    <node role="propertyMacro$property_attribute$name" type="jetbrains.mps.lang.generator.structure.PropertyMacro" id="193653467006779971">
      <node role="propertyValueFunction" type="jetbrains.mps.lang.generator.structure.PropertyMacro_GetPropertyValue" id="193653467006779972">
        <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="193653467006779973">
          <node role="statement" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement" id="193653467006855282">
            <node role="expression" type="jetbrains.mps.baseLanguage.structure.StaticMethodCall" id="193653467006948737">
              <link role="baseMethodDeclaration" targetNodeId="4.193653467006948696" resolveInfo="normalizeModuleDefinitionName" />
              <link role="classConcept" targetNodeId="4.193653467006332497" resolveInfo="NameUtils" />
              <node role="actualArgument" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="193653467006948738">
                <node role="operand" type="jetbrains.mps.lang.generator.structure.TemplateFunctionParameter_sourceNode" id="193653467006948739" />
                <node role="operation" type="jetbrains.mps.lang.smodel.structure.SPropertyAccess" id="193653467006948740">
                  <link role="property" targetNodeId="4v.1169194664001" resolveInfo="name" />
                </node>
              </node>
            </node>
          </node>
        </node>
      </node>
    </node>
  </node>
  <node type="jetbrains.mps.baseLanguage.structure.ClassConcept" id="193653467007053042">
    <property name="name" value="TypeAssignment" />
    <property name="package" value="Assignments.TypeAssignment" />
    <node role="visibility" type="jetbrains.mps.baseLanguage.structure.PublicVisibility" id="193653467007053043" />
    <node role="constructor" type="jetbrains.mps.baseLanguage.structure.ConstructorDeclaration" id="4634822557331140361">
      <node role="returnType" type="jetbrains.mps.baseLanguage.structure.VoidType" id="4634822557331140362" />
      <node role="visibility" type="jetbrains.mps.baseLanguage.structure.PublicVisibility" id="4634822557331140363" />
      <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="4634822557331140364" />
    </node>
    <node role="rootTemplateAnnotation$attribute" type="jetbrains.mps.lang.generator.structure.RootTemplateAnnotation" id="193653467007053048">
      <link role="applicableConcept" targetNodeId="3v.4056456322104744037" resolveInfo="ITypeAssignment" />
    </node>
    <node role="propertyMacro$property_attribute$name" type="jetbrains.mps.lang.generator.structure.PropertyMacro" id="193653467007055227">
      <node role="propertyValueFunction" type="jetbrains.mps.lang.generator.structure.PropertyMacro_GetPropertyValue" id="193653467007055228">
        <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="193653467007055229">
          <node role="statement" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement" id="193653467007055230">
            <node role="expression" type="jetbrains.mps.baseLanguage.structure.StaticMethodCall" id="193653467007055238">
              <link role="baseMethodDeclaration" targetNodeId="4.193653467006344340" resolveInfo="normalizeValue" />
              <link role="classConcept" targetNodeId="4.193653467006332497" resolveInfo="NameUtils" />
              <node role="actualArgument" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="1267847971803550026">
                <node role="operand" type="jetbrains.mps.lang.smodel.structure.SNodeTypeCastExpression" id="1267847971803547794">
                  <link role="concept" targetNodeId="3v.4056456322104744037" resolveInfo="ITypeAssignment" />
                  <node role="leftExpression" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="193653467007055240">
                    <node role="operand" type="jetbrains.mps.lang.generator.structure.TemplateFunctionParameter_sourceNode" id="193653467007055239" />
                    <node role="operation" type="jetbrains.mps.lang.smodel.structure.Node_GetParentOperation" id="1267847971803547792" />
                  </node>
                </node>
                <node role="operation" type="jetbrains.mps.lang.smodel.structure.SPropertyAccess" id="1267847971803550030">
                  <link role="property" targetNodeId="4v.1169194664001" resolveInfo="name" />
                </node>
              </node>
            </node>
          </node>
        </node>
      </node>
    </node>
    <node role="nodeMacro$attribute" type="jetbrains.mps.lang.generator.structure.MapSrcNodeMacro" id="1267847971803354709">
      <link role="mappingLabel" targetNodeId="1267847971803158685" resolveInfo="type class container" />
      <node role="sourceNodeQuery" type="jetbrains.mps.lang.generator.structure.SourceSubstituteMacro_SourceNodeQuery" id="1267847971803354710">
        <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="1267847971803354711">
          <node role="statement" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement" id="1267847971803354713">
            <node role="expression" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="1267847971803354715">
              <node role="operand" type="jetbrains.mps.lang.generator.structure.TemplateFunctionParameter_sourceNode" id="1267847971803354714" />
              <node role="operation" type="jetbrains.mps.lang.smodel.structure.SLinkAccess" id="1267847971803354720">
                <link role="link" targetNodeId="3v.9087026269843019313" />
              </node>
            </node>
          </node>
        </node>
      </node>
    </node>
  </node>
  <node type="jetbrains.mps.lang.generator.structure.TemplateDeclaration" id="8961820276319794337">
    <property name="name" value="weave_SequenceType" />
    <property name="package" value="TypeRules.SequenceType" />
    <link role="applicableConcept" targetNodeId="3v.2745703621025106475" resolveInfo="SequenceType" />
    <node role="contentNode" type="jetbrains.mps.baseLanguage.structure.ClassConcept" id="8961820276319794413">
      <property name="name" value="_class_" />
      <node role="visibility" type="jetbrains.mps.baseLanguage.structure.PublicVisibility" id="8961820276319794414" />
      <node role="constructor" type="jetbrains.mps.baseLanguage.structure.ConstructorDeclaration" id="8961820276319794415">
        <node role="returnType" type="jetbrains.mps.baseLanguage.structure.VoidType" id="8961820276319794416" />
        <node role="visibility" type="jetbrains.mps.baseLanguage.structure.PublicVisibility" id="8961820276319794417" />
        <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="8961820276319794418">
          <node role="statement" type="jetbrains.mps.baseLanguage.structure.SuperConstructorInvocation" id="8961820276319794622">
            <link role="baseMethodDeclaration" targetNodeId="22.~SequenceType.&lt;init&gt;(asn.ASNDescriptor)" resolveInfo="SequenceType" />
            <node role="actualArgument" type="jetbrains.mps.baseLanguage.structure.ParameterReference" id="8961820276319794623">
              <link role="variableDeclaration" targetNodeId="8961820276319794609" resolveInfo="descriptor" />
            </node>
          </node>
        </node>
        <node role="parameter" type="jetbrains.mps.baseLanguage.structure.ParameterDeclaration" id="8961820276319794609">
          <property name="name" value="descriptor" />
          <node role="type" type="jetbrains.mps.baseLanguage.structure.ClassifierType" id="1683491323257326206">
            <link role="classifier" targetNodeId="23.~ASNDescriptor" resolveInfo="ASNDescriptor" />
          </node>
        </node>
      </node>
      <node role="superclass" type="jetbrains.mps.baseLanguage.structure.ClassifierType" id="8961820276319794614">
        <link role="classifier" targetNodeId="22.~SequenceType" resolveInfo="SequenceType" />
        <node role="templateFragment$attribute" type="jetbrains.mps.lang.generator.structure.TemplateFragment" id="8210282642553109173" />
      </node>
    </node>
  </node>
  <node type="jetbrains.mps.lang.generator.structure.TemplateDeclaration" id="8961820276320963044">
    <property name="name" value="weave_ChoiceType" />
    <property name="package" value="TypeRules.ChoiceType" />
    <link role="applicableConcept" targetNodeId="3v.7401774347126901161" resolveInfo="ChoiceType" />
    <node role="contentNode" type="jetbrains.mps.baseLanguage.structure.ClassConcept" id="8961820276320963061">
      <property name="name" value="_class_" />
      <node role="visibility" type="jetbrains.mps.baseLanguage.structure.PublicVisibility" id="8961820276320963062" />
      <node role="constructor" type="jetbrains.mps.baseLanguage.structure.ConstructorDeclaration" id="8961820276320963063">
        <node role="returnType" type="jetbrains.mps.baseLanguage.structure.VoidType" id="8961820276320963064" />
        <node role="visibility" type="jetbrains.mps.baseLanguage.structure.PublicVisibility" id="8961820276320963065" />
        <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="8961820276320963066">
          <node role="statement" type="jetbrains.mps.baseLanguage.structure.SuperConstructorInvocation" id="8961820276320963070">
            <link role="baseMethodDeclaration" targetNodeId="22.~ChoiceType.&lt;init&gt;(asn.ASNDescriptor)" resolveInfo="ChoiceType" />
            <node role="actualArgument" type="jetbrains.mps.baseLanguage.structure.ParameterReference" id="8961820276320963071">
              <link role="variableDeclaration" targetNodeId="8961820276320963068" resolveInfo="descriptor" />
            </node>
          </node>
        </node>
        <node role="parameter" type="jetbrains.mps.baseLanguage.structure.ParameterDeclaration" id="8961820276320963068">
          <property name="name" value="descriptor" />
          <node role="type" type="jetbrains.mps.baseLanguage.structure.ClassifierType" id="6676161064095157806">
            <link role="classifier" targetNodeId="23.~ASNDescriptor" resolveInfo="ASNDescriptor" />
          </node>
        </node>
      </node>
      <node role="superclass" type="jetbrains.mps.baseLanguage.structure.ClassifierType" id="8961820276321256728">
        <link role="classifier" targetNodeId="22.~ChoiceType" resolveInfo="ChoiceType" />
        <node role="templateFragment$attribute" type="jetbrains.mps.lang.generator.structure.TemplateFragment" id="8210282642553109140" />
      </node>
    </node>
  </node>
  <node type="jetbrains.mps.lang.generator.structure.TemplateDeclaration" id="8961820276321354237">
    <property name="name" value="weave_SequenceOfType" />
    <property name="package" value="TypeRules.SequenceOfType" />
    <link role="applicableConcept" targetNodeId="3v.5982802075657960504" resolveInfo="SequenceOfType" />
    <node role="contentNode" type="jetbrains.mps.baseLanguage.structure.ClassConcept" id="8961820276321354274">
      <property name="name" value="_class_" />
      <node role="visibility" type="jetbrains.mps.baseLanguage.structure.PublicVisibility" id="8961820276321354275" />
      <node role="constructor" type="jetbrains.mps.baseLanguage.structure.ConstructorDeclaration" id="8961820276321354276">
        <node role="returnType" type="jetbrains.mps.baseLanguage.structure.VoidType" id="8961820276321354277" />
        <node role="visibility" type="jetbrains.mps.baseLanguage.structure.PublicVisibility" id="8961820276321354278" />
        <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="8961820276321354279">
          <node role="statement" type="jetbrains.mps.baseLanguage.structure.SuperConstructorInvocation" id="8961820276321354333">
            <link role="baseMethodDeclaration" targetNodeId="22.~SequenceOfType.&lt;init&gt;(asn.ASNDescriptor)" resolveInfo="SequenceOfType" />
            <node role="actualArgument" type="jetbrains.mps.baseLanguage.structure.ParameterReference" id="8961820276321354334">
              <link role="variableDeclaration" targetNodeId="8961820276321354331" resolveInfo="descriptor" />
            </node>
          </node>
        </node>
        <node role="parameter" type="jetbrains.mps.baseLanguage.structure.ParameterDeclaration" id="8961820276321354331">
          <property name="name" value="descriptor" />
          <node role="type" type="jetbrains.mps.baseLanguage.structure.ClassifierType" id="8210282642553109146">
            <link role="classifier" targetNodeId="23.~ASNDescriptor" resolveInfo="ASNDescriptor" />
          </node>
        </node>
      </node>
      <node role="superclass" type="jetbrains.mps.baseLanguage.structure.ClassifierType" id="8961820276321354280">
        <link role="classifier" targetNodeId="22.~SequenceOfType" resolveInfo="SequenceOfType" />
        <node role="templateFragment$attribute" type="jetbrains.mps.lang.generator.structure.TemplateFragment" id="8210282642553109147" />
      </node>
    </node>
  </node>
  <node type="jetbrains.mps.lang.generator.structure.TemplateDeclaration" id="8961820276321354258">
    <property name="name" value="weave_SetOfType" />
    <property name="package" value="TypeRules.SetOfType" />
    <link role="applicableConcept" targetNodeId="3v.2917342674764100115" resolveInfo="SetOfType" />
    <node role="contentNode" type="jetbrains.mps.baseLanguage.structure.ClassConcept" id="8961820276321354421">
      <property name="name" value="_class_" />
      <node role="visibility" type="jetbrains.mps.baseLanguage.structure.PublicVisibility" id="8961820276321354470" />
      <node role="constructor" type="jetbrains.mps.baseLanguage.structure.ConstructorDeclaration" id="8961820276321354471">
        <node role="returnType" type="jetbrains.mps.baseLanguage.structure.VoidType" id="8961820276321354472" />
        <node role="visibility" type="jetbrains.mps.baseLanguage.structure.PublicVisibility" id="8961820276321354473" />
        <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="8961820276321354474">
          <node role="statement" type="jetbrains.mps.baseLanguage.structure.SuperConstructorInvocation" id="8961820276321354475">
            <link role="baseMethodDeclaration" targetNodeId="22.~SetOfType.&lt;init&gt;(asn.ASNDescriptor)" resolveInfo="SetOfType" />
            <node role="actualArgument" type="jetbrains.mps.baseLanguage.structure.ParameterReference" id="8961820276321354476">
              <link role="variableDeclaration" targetNodeId="8961820276321354523" resolveInfo="descriptor" />
            </node>
          </node>
        </node>
        <node role="parameter" type="jetbrains.mps.baseLanguage.structure.ParameterDeclaration" id="8961820276321354523">
          <property name="name" value="descriptor" />
          <node role="type" type="jetbrains.mps.baseLanguage.structure.ClassifierType" id="8210282642553208512">
            <link role="classifier" targetNodeId="23.~ASNDescriptor" resolveInfo="ASNDescriptor" />
          </node>
        </node>
      </node>
      <node role="superclass" type="jetbrains.mps.baseLanguage.structure.ClassifierType" id="8961820276321354525">
        <link role="classifier" targetNodeId="22.~SetOfType" resolveInfo="SetOfType" />
        <node role="templateFragment$attribute" type="jetbrains.mps.lang.generator.structure.TemplateFragment" id="8210282642553109181" />
      </node>
    </node>
  </node>
  <node type="jetbrains.mps.lang.generator.structure.TemplateDeclaration" id="8879198192717261036">
    <property name="name" value="weave_IValueAssignment" />
    <property name="package" value="Assignments.ValueAssignment" />
    <link role="applicableConcept" targetNodeId="3v.9152698315526457500" resolveInfo="IValueAssignment" />
    <node role="contentNode" type="jetbrains.mps.baseLanguage.structure.ClassConcept" id="8879198192717261066">
      <property name="name" value="_class_" />
      <node role="staticField" type="jetbrains.mps.baseLanguage.structure.StaticFieldDeclaration" id="8879198192717261076">
        <property name="name" value="name" />
        <node role="visibility" type="jetbrains.mps.baseLanguage.structure.PublicVisibility" id="8879198192717261079" />
        <node role="type" type="jetbrains.mps.baseLanguage.structure.ClassifierType" id="8879198192717261080">
          <link role="classifier" targetNodeId="23.~ASNTag" resolveInfo="ASNTag" />
        </node>
        <node role="templateFragment$attribute" type="jetbrains.mps.lang.generator.structure.TemplateFragment" id="8879198192717261081" />
        <node role="propertyMacro$property_attribute$name" type="jetbrains.mps.lang.generator.structure.PropertyMacro" id="8879198192717261082">
          <node role="propertyValueFunction" type="jetbrains.mps.lang.generator.structure.PropertyMacro_GetPropertyValue" id="8879198192717261085">
            <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="8879198192717261086">
              <node role="statement" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement" id="8879198192717261087">
                <node role="expression" type="jetbrains.mps.baseLanguage.structure.StaticMethodCall" id="6676161064095662173">
                  <link role="baseMethodDeclaration" targetNodeId="4.193653467006344340" resolveInfo="getName" />
                  <link role="classConcept" targetNodeId="4.193653467006332497" resolveInfo="NameUtils" />
                  <node role="actualArgument" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="6676161064095662174">
                    <node role="operation" type="jetbrains.mps.lang.smodel.structure.SPropertyAccess" id="6676161064095662175">
                      <link role="property" targetNodeId="4v.1169194664001" resolveInfo="name" />
                    </node>
                    <node role="operand" type="jetbrains.mps.lang.generator.structure.TemplateFunctionParameter_sourceNode" id="6676161064095662176" />
                  </node>
                </node>
              </node>
            </node>
          </node>
        </node>
        <node role="initializer" type="jetbrains.mps.baseLanguage.structure.GenericNewExpression" id="8879198192717359336">
          <node role="nodeMacro$attribute" type="jetbrains.mps.lang.generator.structure.CopySrcNodeMacro" id="8879198192717372053">
            <node role="sourceNodeQuery" type="jetbrains.mps.lang.generator.structure.SourceSubstituteMacro_SourceNodeQuery" id="8879198192717372054">
              <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="8879198192717372055">
                <node role="statement" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement" id="8879198192717372056">
                  <node role="expression" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="8879198192717372058">
                    <node role="operand" type="jetbrains.mps.lang.generator.structure.TemplateFunctionParameter_sourceNode" id="8879198192717372057" />
                    <node role="operation" type="jetbrains.mps.lang.smodel.structure.SLinkAccess" id="8879198192717372062">
                      <link role="link" targetNodeId="3v.9152698315526469695" />
                    </node>
                  </node>
                </node>
              </node>
            </node>
          </node>
        </node>
      </node>
      <node role="visibility" type="jetbrains.mps.baseLanguage.structure.PublicVisibility" id="8879198192717261067" />
    </node>
  </node>
  <node type="jetbrains.mps.lang.generator.structure.TemplateDeclaration" id="789670156432271810">
    <property name="name" value="weave_ITypeAssignment" />
    <property name="package" value="Assignments.TypeAssignment" />
    <link role="applicableConcept" targetNodeId="3v.4056456322104744037" resolveInfo="ITypeAssignment" />
    <node role="contentNode" type="jetbrains.mps.baseLanguage.structure.ClassConcept" id="789670156432271831">
      <property name="name" value="_class_" />
      <node role="staticField" type="jetbrains.mps.baseLanguage.structure.StaticFieldDeclaration" id="789670156432271837">
        <property name="name" value="name" />
        <node role="visibility" type="jetbrains.mps.baseLanguage.structure.PublicVisibility" id="789670156432271838" />
        <node role="type" type="jetbrains.mps.baseLanguage.structure.ClassifierType" id="789670156432271839">
          <link role="classifier" targetNodeId="23.~ASNDescriptor" resolveInfo="ASNDescriptor" />
          <node role="referenceMacro$link_attribute$classifier" type="jetbrains.mps.lang.generator.structure.ReferenceMacro" id="789670156432368395">
            <node role="referentFunction" type="jetbrains.mps.lang.generator.structure.ReferenceMacro_GetReferent" id="789670156432368396">
              <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="789670156432368397">
                <node role="statement" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement" id="789670156432370583">
                  <node role="expression" type="jetbrains.mps.baseLanguage.structure.StaticMethodCall" id="789670156432370585">
                    <link role="baseMethodDeclaration" targetNodeId="4.193653467006344340" resolveInfo="getName" />
                    <link role="classConcept" targetNodeId="4.193653467006332497" resolveInfo="NameUtils" />
                    <node role="actualArgument" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="789670156432370587">
                      <node role="operand" type="jetbrains.mps.lang.generator.structure.TemplateFunctionParameter_sourceNode" id="789670156432370586" />
                      <node role="operation" type="jetbrains.mps.lang.smodel.structure.SPropertyAccess" id="789670156432370591">
                        <link role="property" targetNodeId="4v.1169194664001" resolveInfo="name" />
                      </node>
                    </node>
                  </node>
                </node>
              </node>
            </node>
          </node>
        </node>
        <node role="templateFragment$attribute" type="jetbrains.mps.lang.generator.structure.TemplateFragment" id="789670156432271840" />
        <node role="propertyMacro$property_attribute$name" type="jetbrains.mps.lang.generator.structure.PropertyMacro" id="789670156432271841">
          <node role="propertyValueFunction" type="jetbrains.mps.lang.generator.structure.PropertyMacro_GetPropertyValue" id="789670156432271842">
            <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="789670156432271843">
              <node role="statement" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement" id="789670156432271844">
                <node role="expression" type="jetbrains.mps.baseLanguage.structure.StaticMethodCall" id="789670156432271845">
                  <link role="classConcept" targetNodeId="4.193653467006332497" resolveInfo="NameUtils" />
                  <link role="baseMethodDeclaration" targetNodeId="4.193653467006344340" resolveInfo="getName" />
                  <node role="actualArgument" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="789670156432271846">
                    <node role="operation" type="jetbrains.mps.lang.smodel.structure.SPropertyAccess" id="789670156432271847">
                      <link role="property" targetNodeId="4v.1169194664001" resolveInfo="name" />
                    </node>
                    <node role="operand" type="jetbrains.mps.lang.generator.structure.TemplateFunctionParameter_sourceNode" id="789670156432271848" />
                  </node>
                </node>
              </node>
            </node>
          </node>
        </node>
        <node role="initializer" type="jetbrains.mps.baseLanguage.structure.GenericNewExpression" id="789670156432469301">
          <node role="creator" type="jetbrains.mps.baseLanguage.structure.ClassCreator" id="789670156432477968">
            <link role="baseMethodDeclaration" targetNodeId="23.~ASNDescriptor.&lt;init&gt;()" resolveInfo="ASNDescriptor" />
            <node role="referenceMacro$link_attribute$baseMethodDeclaration" type="jetbrains.mps.lang.generator.structure.ReferenceMacro" id="789670156432477969">
              <node role="referentFunction" type="jetbrains.mps.lang.generator.structure.ReferenceMacro_GetReferent" id="789670156432477970">
                <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="789670156432477971">
                  <node role="statement" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement" id="789670156432477972">
                    <node role="expression" type="jetbrains.mps.baseLanguage.structure.StaticMethodCall" id="789670156432477974">
                      <link role="baseMethodDeclaration" targetNodeId="4.193653467006344340" resolveInfo="getName" />
                      <link role="classConcept" targetNodeId="4.193653467006332497" resolveInfo="NameUtils" />
                      <node role="actualArgument" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="789670156432477976">
                        <node role="operand" type="jetbrains.mps.lang.generator.structure.TemplateFunctionParameter_sourceNode" id="789670156432477975" />
                        <node role="operation" type="jetbrains.mps.lang.smodel.structure.SPropertyAccess" id="789670156432477980">
                          <link role="property" targetNodeId="4v.1169194664001" resolveInfo="name" />
                        </node>
                      </node>
                    </node>
                  </node>
                </node>
              </node>
            </node>
          </node>
        </node>
      </node>
      <node role="visibility" type="jetbrains.mps.baseLanguage.structure.PublicVisibility" id="789670156432271832" />
      <node role="constructor" type="jetbrains.mps.baseLanguage.structure.ConstructorDeclaration" id="789670156432271833">
        <node role="returnType" type="jetbrains.mps.baseLanguage.structure.VoidType" id="789670156432271834" />
        <node role="visibility" type="jetbrains.mps.baseLanguage.structure.PublicVisibility" id="789670156432271835" />
        <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="789670156432271836" />
      </node>
    </node>
  </node>
  <node type="jetbrains.mps.lang.generator.structure.TemplateDeclaration" id="8210282642553626489">
    <property name="name" value="weave_IntegerType" />
    <property name="package" value="TypeRules.IntegerType" />
    <link role="applicableConcept" targetNodeId="3v.8702535492065731432" resolveInfo="IntegerType" />
    <node role="contentNode" type="jetbrains.mps.baseLanguage.structure.ClassConcept" id="8210282642553626514">
      <property name="name" value="_class_" />
      <node role="visibility" type="jetbrains.mps.baseLanguage.structure.PublicVisibility" id="8210282642553626580" />
      <node role="constructor" type="jetbrains.mps.baseLanguage.structure.ConstructorDeclaration" id="8210282642553626581">
        <node role="returnType" type="jetbrains.mps.baseLanguage.structure.VoidType" id="8210282642553626582" />
        <node role="visibility" type="jetbrains.mps.baseLanguage.structure.PublicVisibility" id="8210282642553626583" />
        <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="8210282642553626584">
          <node role="statement" type="jetbrains.mps.baseLanguage.structure.SuperConstructorInvocation" id="8210282642553626585">
            <link role="baseMethodDeclaration" targetNodeId="22.~IntegerType.&lt;init&gt;(asn.ASNDescriptor)" resolveInfo="IntegerType" />
            <node role="actualArgument" type="jetbrains.mps.baseLanguage.structure.ParameterReference" id="8210282642553626586">
              <link role="variableDeclaration" targetNodeId="8210282642553626633" resolveInfo="descriptor" />
            </node>
          </node>
        </node>
        <node role="parameter" type="jetbrains.mps.baseLanguage.structure.ParameterDeclaration" id="8210282642553626633">
          <property name="name" value="descriptor" />
          <node role="type" type="jetbrains.mps.baseLanguage.structure.ClassifierType" id="8210282642553626634">
            <link role="classifier" targetNodeId="23.~ASNDescriptor" resolveInfo="ASNDescriptor" />
          </node>
        </node>
      </node>
      <node role="superclass" type="jetbrains.mps.baseLanguage.structure.ClassifierType" id="8210282642553626635">
        <link role="classifier" targetNodeId="22.~IntegerType" resolveInfo="IntegerType" />
        <node role="templateFragment$attribute" type="jetbrains.mps.lang.generator.structure.TemplateFragment" id="8210282642553626636" />
      </node>
    </node>
  </node>
  <node type="jetbrains.mps.lang.generator.structure.MappingConfiguration" id="8210282642553833585">
    <property name="name" value="SequenceType" />
    <property name="package" value="TypeRules.SequenceType" />
    <node role="weavingMappingRule" type="jetbrains.mps.lang.generator.structure.Weaving_MappingRule" id="8210282642553833591">
      <link role="applicableConcept" targetNodeId="3v.2745703621025106475" resolveInfo="SequenceType" />
      <node role="contextNodeQuery" type="jetbrains.mps.lang.generator.structure.Weaving_MappingRule_ContextNodeQuery" id="8210282642553833592">
        <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="8210282642553833593">
          <node role="statement" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement" id="8210282642553833602">
            <node role="expression" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="8210282642553833603">
              <node role="operand" type="jetbrains.mps.lang.generator.generationContext.structure.TemplateFunctionParameter_generationContext" id="8210282642553833604" />
              <node role="operation" type="jetbrains.mps.lang.generator.generationContext.structure.GenerationContextOp_GetOutputByLabelAndInput" id="8210282642553833605">
                <link role="label" targetNodeId="1267847971803158685" resolveInfo="type assignment" />
                <node role="inputNode" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="1267847971803452366">
                  <node role="operand" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="6938031656093732553">
                    <node role="operand" type="jetbrains.mps.lang.generator.structure.TemplateFunctionParameter_sourceNode" id="6938031656093732554" />
                    <node role="operation" type="jetbrains.mps.lang.smodel.structure.Node_GetAncestorOperation" id="1267847971804332640">
                      <node role="parameter" type="jetbrains.mps.lang.smodel.structure.OperationParm_Concept" id="1267847971804332641">
                        <node role="conceptArgument" type="jetbrains.mps.lang.smodel.structure.RefConcept_Reference" id="1267847971804332644">
                          <link role="conceptDeclaration" targetNodeId="3v.4056456322104744037" resolveInfo="ITypeAssignment" />
                        </node>
                      </node>
                    </node>
                  </node>
                  <node role="operation" type="jetbrains.mps.lang.smodel.structure.SLinkAccess" id="1267847971803452370">
                    <link role="link" targetNodeId="3v.9087026269843019313" />
                  </node>
                </node>
              </node>
            </node>
          </node>
        </node>
      </node>
      <node role="ruleConsequence" type="jetbrains.mps.lang.generator.structure.TemplateDeclarationReference" id="8210282642553833607">
        <link role="template" targetNodeId="8961820276319794337" resolveInfo="weave_SequenceType" />
      </node>
      <node role="conditionFunction" type="jetbrains.mps.lang.generator.structure.BaseMappingRule_Condition" id="8210282642553833608">
        <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="8210282642553833609">
          <node role="statement" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement" id="8210282642553934879">
            <node role="expression" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="8210282642553934880">
              <node role="operand" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="8210282642553934881">
                <node role="operand" type="jetbrains.mps.lang.generator.structure.TemplateFunctionParameter_sourceNode" id="8210282642553934882" />
                <node role="operation" type="jetbrains.mps.lang.smodel.structure.Node_GetParentOperation" id="8210282642553934883" />
              </node>
              <node role="operation" type="jetbrains.mps.lang.smodel.structure.Node_IsInstanceOfOperation" id="8210282642553934884">
                <node role="conceptArgument" type="jetbrains.mps.lang.smodel.structure.RefConcept_Reference" id="8210282642553934885">
                  <link role="conceptDeclaration" targetNodeId="3v.4056456322104744037" resolveInfo="ITypeAssignment" />
                </node>
              </node>
            </node>
          </node>
        </node>
      </node>
    </node>
    <node role="weavingMappingRule" type="jetbrains.mps.lang.generator.structure.Weaving_MappingRule" id="6938031656093927510">
      <link role="applicableConcept" targetNodeId="3v.2745703621025106475" resolveInfo="SequenceType" />
      <node role="contextNodeQuery" type="jetbrains.mps.lang.generator.structure.Weaving_MappingRule_ContextNodeQuery" id="6938031656093927512">
        <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="6938031656093927513">
          <node role="statement" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement" id="6938031656093929786">
            <node role="expression" type="jetbrains.mps.baseLanguage.structure.AssignmentExpression" id="6938031656093929795">
              <node role="rValue" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="6938031656093929810">
                <node role="operand" type="jetbrains.mps.lang.smodel.structure.SNodeTypeCastExpression" id="6938031656093929808">
                  <link role="concept" targetNodeId="3v.7534685045991864887" resolveInfo="NamedType" />
                  <node role="leftExpression" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="6938031656093929799">
                    <node role="operand" type="jetbrains.mps.lang.generator.structure.TemplateFunctionParameter_sourceNode" id="6938031656093929798" />
                    <node role="operation" type="jetbrains.mps.lang.smodel.structure.Node_GetParentOperation" id="6938031656093929803" />
                  </node>
                </node>
                <node role="operation" type="jetbrains.mps.lang.smodel.structure.SPropertyAccess" id="6938031656093929814">
                  <link role="property" targetNodeId="4v.1169194664001" resolveInfo="name" />
                </node>
              </node>
              <node role="lValue" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="6938031656093929788">
                <node role="operand" type="jetbrains.mps.lang.generator.generationContext.structure.TemplateFunctionParameter_generationContext" id="6938031656093929787" />
                <node role="operation" type="jetbrains.mps.lang.generator.generationContext.structure.GenerationContextOp_StepObjectAccess" id="6938031656093929792">
                  <node role="userKey" type="jetbrains.mps.baseLanguage.structure.StringLiteral" id="6938031656093929794">
                    <property name="value" value="name" />
                  </node>
                </node>
              </node>
            </node>
          </node>
          <node role="statement" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement" id="6938031656093929747">
            <node role="expression" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="6938031656093929748">
              <node role="operand" type="jetbrains.mps.lang.generator.generationContext.structure.TemplateFunctionParameter_generationContext" id="6938031656093929749" />
              <node role="operation" type="jetbrains.mps.lang.generator.generationContext.structure.GenerationContextOp_GetOutputByLabelAndInput" id="6938031656093929750">
                <link role="label" targetNodeId="1267847971803158685" resolveInfo="type assignment" />
                <node role="inputNode" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="6938031656093929751">
                  <node role="operand" type="jetbrains.mps.lang.generator.structure.TemplateFunctionParameter_sourceNode" id="6938031656093929752" />
                  <node role="operation" type="jetbrains.mps.lang.smodel.structure.Node_GetAncestorOperation" id="6938031656093929754">
                    <node role="parameter" type="jetbrains.mps.lang.smodel.structure.OperationParm_Concept" id="6938031656093929755">
                      <node role="conceptArgument" type="jetbrains.mps.lang.smodel.structure.RefConcept_Reference" id="1267847971804332645">
                        <link role="conceptDeclaration" targetNodeId="3v.1048767958318497761" resolveInfo="ASNType" />
                      </node>
                    </node>
                  </node>
                </node>
              </node>
            </node>
          </node>
        </node>
      </node>
      <node role="ruleConsequence" type="jetbrains.mps.lang.generator.structure.TemplateDeclarationReference" id="6938031656093929746">
        <link role="template" targetNodeId="6938031656093929744" resolveInfo="weave_SequenceType" />
      </node>
      <node role="conditionFunction" type="jetbrains.mps.lang.generator.structure.BaseMappingRule_Condition" id="6938031656093929759">
        <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="6938031656093929760">
          <node role="statement" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement" id="6938031656093929761">
            <node role="expression" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="6938031656093929762">
              <node role="operand" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="6938031656093929763">
                <node role="operand" type="jetbrains.mps.lang.generator.structure.TemplateFunctionParameter_sourceNode" id="6938031656093929764" />
                <node role="operation" type="jetbrains.mps.lang.smodel.structure.Node_GetParentOperation" id="6938031656093929765" />
              </node>
              <node role="operation" type="jetbrains.mps.lang.smodel.structure.Node_IsInstanceOfOperation" id="6938031656093929766">
                <node role="conceptArgument" type="jetbrains.mps.lang.smodel.structure.RefConcept_Reference" id="6938031656093929784">
                  <link role="conceptDeclaration" targetNodeId="3v.7534685045991864887" resolveInfo="NamedType" />
                </node>
              </node>
            </node>
          </node>
        </node>
      </node>
    </node>
  </node>
  <node type="jetbrains.mps.lang.generator.structure.MappingConfiguration" id="8210282642553835901">
    <property name="name" value="ChoiceType" />
    <property name="package" value="TypeRules.ChoiceType" />
    <node role="weavingMappingRule" type="jetbrains.mps.lang.generator.structure.Weaving_MappingRule" id="8210282642553835903">
      <link role="applicableConcept" targetNodeId="3v.7401774347126901161" resolveInfo="ChoiceType" />
      <node role="contextNodeQuery" type="jetbrains.mps.lang.generator.structure.Weaving_MappingRule_ContextNodeQuery" id="8210282642553835904">
        <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="8210282642553835905">
          <node role="statement" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement" id="8210282642553835914">
            <node role="expression" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="8210282642553835915">
              <node role="operand" type="jetbrains.mps.lang.generator.generationContext.structure.TemplateFunctionParameter_generationContext" id="8210282642553835916" />
              <node role="operation" type="jetbrains.mps.lang.generator.generationContext.structure.GenerationContextOp_GetOutputByLabelAndInput" id="8210282642553835917">
                <link role="label" targetNodeId="1267847971803158685" resolveInfo="type assignment" />
                <node role="inputNode" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="1267847971804332633">
                  <node role="operand" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="1267847971804332634">
                    <node role="operand" type="jetbrains.mps.lang.generator.structure.TemplateFunctionParameter_sourceNode" id="1267847971804332635" />
                    <node role="operation" type="jetbrains.mps.lang.smodel.structure.Node_GetAncestorOperation" id="1267847971804332636">
                      <node role="parameter" type="jetbrains.mps.lang.smodel.structure.OperationParm_Concept" id="1267847971804332637">
                        <node role="conceptArgument" type="jetbrains.mps.lang.smodel.structure.RefConcept_Reference" id="1267847971804332638">
                          <link role="conceptDeclaration" targetNodeId="3v.4056456322104744037" resolveInfo="ITypeAssignment" />
                        </node>
                      </node>
                    </node>
                  </node>
                  <node role="operation" type="jetbrains.mps.lang.smodel.structure.SLinkAccess" id="1267847971804332639">
                    <link role="link" targetNodeId="3v.9087026269843019313" />
                  </node>
                </node>
              </node>
            </node>
          </node>
        </node>
      </node>
      <node role="ruleConsequence" type="jetbrains.mps.lang.generator.structure.TemplateDeclarationReference" id="8210282642553835919">
        <link role="template" targetNodeId="8961820276320963044" resolveInfo="weave_ChoiceType" />
      </node>
      <node role="conditionFunction" type="jetbrains.mps.lang.generator.structure.BaseMappingRule_Condition" id="8210282642553835920">
        <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="8210282642553835921">
          <node role="statement" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement" id="8210282642553835922">
            <node role="expression" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="8210282642553934857">
              <node role="operand" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="8210282642553934852">
                <node role="operand" type="jetbrains.mps.lang.generator.structure.TemplateFunctionParameter_sourceNode" id="8210282642553934851" />
                <node role="operation" type="jetbrains.mps.lang.smodel.structure.Node_GetParentOperation" id="8210282642553934856" />
              </node>
              <node role="operation" type="jetbrains.mps.lang.smodel.structure.Node_IsInstanceOfOperation" id="8210282642553934861">
                <node role="conceptArgument" type="jetbrains.mps.lang.smodel.structure.RefConcept_Reference" id="8210282642553934864">
                  <link role="conceptDeclaration" targetNodeId="3v.4056456322104744037" resolveInfo="ITypeAssignment" />
                </node>
              </node>
            </node>
          </node>
        </node>
      </node>
    </node>
  </node>
  <node type="jetbrains.mps.lang.generator.structure.MappingConfiguration" id="8210282642553835930">
    <property name="package" value="TypeRules.SequenceOfType" />
    <property name="name" value="SequenceOfType" />
    <node role="weavingMappingRule" type="jetbrains.mps.lang.generator.structure.Weaving_MappingRule" id="8210282642553835932">
      <link role="applicableConcept" targetNodeId="3v.5982802075657960504" resolveInfo="SequenceOfType" />
      <node role="contextNodeQuery" type="jetbrains.mps.lang.generator.structure.Weaving_MappingRule_ContextNodeQuery" id="8210282642553835933">
        <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="8210282642553835934">
          <node role="statement" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement" id="8210282642553835943">
            <node role="expression" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="8210282642553835944">
              <node role="operand" type="jetbrains.mps.lang.generator.generationContext.structure.TemplateFunctionParameter_generationContext" id="8210282642553835945" />
              <node role="operation" type="jetbrains.mps.lang.generator.generationContext.structure.GenerationContextOp_GetOutputByLabelAndInput" id="8210282642553835946">
                <link role="label" targetNodeId="1267847971803158685" resolveInfo="type assignment" />
                <node role="inputNode" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="1267847971803647743">
                  <node role="operand" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="1267847971803647738">
                    <node role="operand" type="jetbrains.mps.lang.generator.structure.TemplateFunctionParameter_sourceNode" id="1267847971803647739" />
                    <node role="operation" type="jetbrains.mps.lang.smodel.structure.Node_GetAncestorOperation" id="1267847971803647740">
                      <node role="parameter" type="jetbrains.mps.lang.smodel.structure.OperationParm_Concept" id="1267847971803647741">
                        <node role="conceptArgument" type="jetbrains.mps.lang.smodel.structure.RefConcept_Reference" id="1267847971803647742">
                          <link role="conceptDeclaration" targetNodeId="3v.4056456322104744037" resolveInfo="ITypeAssignment" />
                        </node>
                      </node>
                    </node>
                  </node>
                  <node role="operation" type="jetbrains.mps.lang.smodel.structure.SLinkAccess" id="1267847971803647747">
                    <link role="link" targetNodeId="3v.9087026269843019313" />
                  </node>
                </node>
              </node>
            </node>
          </node>
        </node>
      </node>
      <node role="ruleConsequence" type="jetbrains.mps.lang.generator.structure.TemplateDeclarationReference" id="8210282642553835948">
        <link role="template" targetNodeId="8961820276321354237" resolveInfo="weave_SequenceOfType" />
      </node>
      <node role="conditionFunction" type="jetbrains.mps.lang.generator.structure.BaseMappingRule_Condition" id="8210282642553835949">
        <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="8210282642553835950">
          <node role="statement" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement" id="8210282642553934872">
            <node role="expression" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="8210282642553934873">
              <node role="operand" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="8210282642553934874">
                <node role="operand" type="jetbrains.mps.lang.generator.structure.TemplateFunctionParameter_sourceNode" id="8210282642553934875" />
                <node role="operation" type="jetbrains.mps.lang.smodel.structure.Node_GetParentOperation" id="8210282642553934876" />
              </node>
              <node role="operation" type="jetbrains.mps.lang.smodel.structure.Node_IsInstanceOfOperation" id="8210282642553934877">
                <node role="conceptArgument" type="jetbrains.mps.lang.smodel.structure.RefConcept_Reference" id="8210282642553934878">
                  <link role="conceptDeclaration" targetNodeId="3v.4056456322104744037" resolveInfo="ITypeAssignment" />
                </node>
              </node>
            </node>
          </node>
        </node>
      </node>
    </node>
  </node>
  <node type="jetbrains.mps.lang.generator.structure.MappingConfiguration" id="8210282642553835959">
    <property name="package" value="TypeRules.SetOfType" />
    <property name="name" value="SetOfType" />
    <node role="weavingMappingRule" type="jetbrains.mps.lang.generator.structure.Weaving_MappingRule" id="8210282642553835961">
      <link role="applicableConcept" targetNodeId="3v.2917342674764100115" resolveInfo="SetOfType" />
      <node role="contextNodeQuery" type="jetbrains.mps.lang.generator.structure.Weaving_MappingRule_ContextNodeQuery" id="8210282642553835962">
        <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="8210282642553835963">
          <node role="statement" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement" id="8210282642553835972">
            <node role="expression" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="8210282642553835973">
              <node role="operand" type="jetbrains.mps.lang.generator.generationContext.structure.TemplateFunctionParameter_generationContext" id="8210282642553835974" />
              <node role="operation" type="jetbrains.mps.lang.generator.generationContext.structure.GenerationContextOp_GetOutputByLabelAndInput" id="8210282642553835975">
                <link role="label" targetNodeId="1267847971803158685" resolveInfo="type assignment" />
                <node role="inputNode" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="1267847971804332651">
                  <node role="operand" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="1267847971804332652">
                    <node role="operand" type="jetbrains.mps.lang.generator.structure.TemplateFunctionParameter_sourceNode" id="1267847971804332653" />
                    <node role="operation" type="jetbrains.mps.lang.smodel.structure.Node_GetAncestorOperation" id="1267847971804332654">
                      <node role="parameter" type="jetbrains.mps.lang.smodel.structure.OperationParm_Concept" id="1267847971804332655">
                        <node role="conceptArgument" type="jetbrains.mps.lang.smodel.structure.RefConcept_Reference" id="1267847971804332656">
                          <link role="conceptDeclaration" targetNodeId="3v.4056456322104744037" resolveInfo="ITypeAssignment" />
                        </node>
                      </node>
                    </node>
                  </node>
                  <node role="operation" type="jetbrains.mps.lang.smodel.structure.SLinkAccess" id="1267847971804332657">
                    <link role="link" targetNodeId="3v.9087026269843019313" />
                  </node>
                </node>
              </node>
            </node>
          </node>
        </node>
      </node>
      <node role="ruleConsequence" type="jetbrains.mps.lang.generator.structure.TemplateDeclarationReference" id="8210282642553835977">
        <link role="template" targetNodeId="8961820276321354258" resolveInfo="weave_SetOfType" />
      </node>
      <node role="conditionFunction" type="jetbrains.mps.lang.generator.structure.BaseMappingRule_Condition" id="8210282642553835978">
        <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="8210282642553835979">
          <node role="statement" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement" id="8210282642553934886">
            <node role="expression" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="8210282642553934887">
              <node role="operand" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="8210282642553934888">
                <node role="operand" type="jetbrains.mps.lang.generator.structure.TemplateFunctionParameter_sourceNode" id="8210282642553934889" />
                <node role="operation" type="jetbrains.mps.lang.smodel.structure.Node_GetParentOperation" id="8210282642553934890" />
              </node>
              <node role="operation" type="jetbrains.mps.lang.smodel.structure.Node_IsInstanceOfOperation" id="8210282642553934891">
                <node role="conceptArgument" type="jetbrains.mps.lang.smodel.structure.RefConcept_Reference" id="8210282642553934892">
                  <link role="conceptDeclaration" targetNodeId="3v.4056456322104744037" resolveInfo="ITypeAssignment" />
                </node>
              </node>
            </node>
          </node>
        </node>
      </node>
    </node>
  </node>
  <node type="jetbrains.mps.lang.generator.structure.MappingConfiguration" id="8210282642553835988">
    <property name="package" value="TypeRules.IntegerType" />
    <property name="name" value="IntegerType" />
    <node role="weavingMappingRule" type="jetbrains.mps.lang.generator.structure.Weaving_MappingRule" id="8210282642553835990">
      <link role="applicableConcept" targetNodeId="3v.8702535492065731432" resolveInfo="IntegerType" />
      <node role="contextNodeQuery" type="jetbrains.mps.lang.generator.structure.Weaving_MappingRule_ContextNodeQuery" id="8210282642553835991">
        <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="8210282642553835992">
          <node role="statement" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement" id="8210282642553836001">
            <node role="expression" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="8210282642553836002">
              <node role="operand" type="jetbrains.mps.lang.generator.generationContext.structure.TemplateFunctionParameter_generationContext" id="8210282642553836003" />
              <node role="operation" type="jetbrains.mps.lang.generator.generationContext.structure.GenerationContextOp_GetOutputByLabelAndInput" id="8210282642553836004">
                <link role="label" targetNodeId="1267847971803158685" resolveInfo="type assignment" />
                <node role="inputNode" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="1267847971803354726">
                  <node role="operand" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="8210282642554422286">
                    <node role="operand" type="jetbrains.mps.lang.generator.structure.TemplateFunctionParameter_sourceNode" id="8210282642554422287" />
                    <node role="operation" type="jetbrains.mps.lang.smodel.structure.Node_GetAncestorOperation" id="8210282642554422288">
                      <node role="parameter" type="jetbrains.mps.lang.smodel.structure.OperationParm_Concept" id="8210282642554422289">
                        <node role="conceptArgument" type="jetbrains.mps.lang.smodel.structure.RefConcept_Reference" id="8210282642554422290">
                          <link role="conceptDeclaration" targetNodeId="3v.4056456322104744037" resolveInfo="ITypeAssignment" />
                        </node>
                      </node>
                    </node>
                  </node>
                  <node role="operation" type="jetbrains.mps.lang.smodel.structure.SLinkAccess" id="1267847971803354730">
                    <link role="link" targetNodeId="3v.9087026269843019313" />
                  </node>
                </node>
              </node>
            </node>
          </node>
        </node>
      </node>
      <node role="ruleConsequence" type="jetbrains.mps.lang.generator.structure.TemplateDeclarationReference" id="8210282642553836006">
        <link role="template" targetNodeId="8210282642553626489" resolveInfo="weave_IntegerType" />
      </node>
      <node role="conditionFunction" type="jetbrains.mps.lang.generator.structure.BaseMappingRule_Condition" id="8210282642553836007">
        <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="8210282642553836008">
          <node role="statement" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement" id="8210282642553934865">
            <node role="expression" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="8210282642553934866">
              <node role="operand" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="8210282642553934867">
                <node role="operand" type="jetbrains.mps.lang.generator.structure.TemplateFunctionParameter_sourceNode" id="8210282642553934868" />
                <node role="operation" type="jetbrains.mps.lang.smodel.structure.Node_GetParentOperation" id="8210282642553934869" />
              </node>
              <node role="operation" type="jetbrains.mps.lang.smodel.structure.Node_IsInstanceOfOperation" id="8210282642553934870">
                <node role="conceptArgument" type="jetbrains.mps.lang.smodel.structure.RefConcept_Reference" id="8210282642553934871">
                  <link role="conceptDeclaration" targetNodeId="3v.4056456322104744037" resolveInfo="ITypeAssignment" />
                </node>
              </node>
            </node>
          </node>
        </node>
      </node>
    </node>
    <node role="weavingMappingRule" type="jetbrains.mps.lang.generator.structure.Weaving_MappingRule" id="8210282642554324838">
      <link role="applicableConcept" targetNodeId="3v.8702535492065731432" resolveInfo="IntegerType" />
      <node role="contextNodeQuery" type="jetbrains.mps.lang.generator.structure.Weaving_MappingRule_ContextNodeQuery" id="8210282642554324840">
        <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="8210282642554324841">
          <node role="statement" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement" id="5934165724926412296">
            <node role="expression" type="jetbrains.mps.baseLanguage.structure.AssignmentExpression" id="5934165724926412305">
              <node role="rValue" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="5934165724926412316">
                <node role="operand" type="jetbrains.mps.lang.smodel.structure.SNodeTypeCastExpression" id="5934165724926412314">
                  <link role="concept" targetNodeId="3v.7534685045991864887" resolveInfo="NamedType" />
                  <node role="leftExpression" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="5934165724926412309">
                    <node role="operand" type="jetbrains.mps.lang.generator.structure.TemplateFunctionParameter_sourceNode" id="5934165724926412308" />
                    <node role="operation" type="jetbrains.mps.lang.smodel.structure.Node_GetParentOperation" id="5934165724926412313" />
                  </node>
                </node>
                <node role="operation" type="jetbrains.mps.lang.smodel.structure.SPropertyAccess" id="5934165724926412320">
                  <link role="property" targetNodeId="4v.1169194664001" resolveInfo="name" />
                </node>
              </node>
              <node role="lValue" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="5934165724926412298">
                <node role="operand" type="jetbrains.mps.lang.generator.generationContext.structure.TemplateFunctionParameter_generationContext" id="5934165724926412297" />
                <node role="operation" type="jetbrains.mps.lang.generator.generationContext.structure.GenerationContextOp_StepObjectAccess" id="5934165724926412302">
                  <node role="userKey" type="jetbrains.mps.baseLanguage.structure.StringLiteral" id="5934165724926412304">
                    <property name="value" value="name" />
                  </node>
                </node>
              </node>
            </node>
          </node>
          <node role="statement" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement" id="8210282642554327055">
            <node role="expression" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="8210282642554327056">
              <node role="operand" type="jetbrains.mps.lang.generator.generationContext.structure.TemplateFunctionParameter_generationContext" id="8210282642554327057" />
              <node role="operation" type="jetbrains.mps.lang.generator.generationContext.structure.GenerationContextOp_GetOutputByLabelAndInput" id="8210282642554327058">
                <link role="label" targetNodeId="1267847971803158685" resolveInfo="type assignment" />
                <node role="inputNode" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="8210282642554907581">
                  <node role="operand" type="jetbrains.mps.lang.generator.structure.TemplateFunctionParameter_sourceNode" id="8210282642554907582" />
                  <node role="operation" type="jetbrains.mps.lang.smodel.structure.Node_GetAncestorOperation" id="8210282642554907583">
                    <node role="parameter" type="jetbrains.mps.lang.smodel.structure.OperationParm_Concept" id="8210282642554907584">
                      <node role="conceptArgument" type="jetbrains.mps.lang.smodel.structure.RefConcept_Reference" id="1267847971804332627">
                        <link role="conceptDeclaration" targetNodeId="3v.1048767958318497761" resolveInfo="ASNType" />
                      </node>
                    </node>
                  </node>
                </node>
              </node>
            </node>
          </node>
        </node>
      </node>
      <node role="conditionFunction" type="jetbrains.mps.lang.generator.structure.BaseMappingRule_Condition" id="8210282642554327027">
        <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="8210282642554327028">
          <node role="statement" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement" id="8210282642554327029">
            <node role="expression" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="8210282642554327036">
              <node role="operand" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="8210282642554327031">
                <node role="operand" type="jetbrains.mps.lang.generator.structure.TemplateFunctionParameter_sourceNode" id="8210282642554327030" />
                <node role="operation" type="jetbrains.mps.lang.smodel.structure.Node_GetParentOperation" id="8210282642554327035" />
              </node>
              <node role="operation" type="jetbrains.mps.lang.smodel.structure.Node_IsInstanceOfOperation" id="8210282642554327040">
                <node role="conceptArgument" type="jetbrains.mps.lang.smodel.structure.RefConcept_Reference" id="8210282642554327042">
                  <link role="conceptDeclaration" targetNodeId="3v.7534685045991864887" resolveInfo="NamedType" />
                </node>
              </node>
            </node>
          </node>
        </node>
      </node>
      <node role="ruleConsequence" type="jetbrains.mps.lang.generator.structure.TemplateDeclarationReference" id="8210282642554327045">
        <link role="template" targetNodeId="8210282642554327043" resolveInfo="weave_IntegerType" />
      </node>
    </node>
  </node>
  <node type="jetbrains.mps.lang.generator.structure.MappingConfiguration" id="8210282642554031495">
    <property name="package" value="TypeRules.SimpleDefinedType" />
    <property name="name" value="SimpleDefinedType" />
    <node role="reductionMappingRule" type="jetbrains.mps.lang.generator.structure.Reduction_MappingRule" id="8210282642554031497">
      <property name="applyToConceptInheritors" value="true" />
      <link role="applicableConcept" targetNodeId="3v.1161031609608070240" resolveInfo="SimpleDefinedType" />
      <node role="ruleConsequence" type="jetbrains.mps.lang.generator.structure.InlineTemplate_RuleConsequence" id="8210282642554031498">
        <node role="templateNode" type="jetbrains.mps.baseLanguage.structure.StaticFieldReference" id="8210282642554031499">
          <node role="referenceMacro$link_attribute$classifier" type="jetbrains.mps.lang.generator.structure.ReferenceMacro" id="8210282642554031500">
            <node role="referentFunction" type="jetbrains.mps.lang.generator.structure.ReferenceMacro_GetReferent" id="8210282642554031501">
              <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="8210282642554031502">
                <node role="statement" type="jetbrains.mps.baseLanguage.structure.LocalVariableDeclarationStatement" id="8210282642554031503">
                  <node role="localVariableDeclaration" type="jetbrains.mps.baseLanguage.structure.LocalVariableDeclaration" id="8210282642554031504">
                    <property name="name" value="moduleDefinition" />
                    <node role="type" type="jetbrains.mps.lang.smodel.structure.SNodeType" id="8210282642554031505">
                      <link role="concept" targetNodeId="3v.903970212124558174" resolveInfo="ModuleDefinition" />
                    </node>
                    <node role="initializer" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="8210282642554031506">
                      <node role="operand" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="8210282642554031507">
                        <node role="operand" type="jetbrains.mps.lang.generator.structure.TemplateFunctionParameter_sourceNode" id="8210282642554031508" />
                        <node role="operation" type="jetbrains.mps.lang.smodel.structure.SLinkAccess" id="8210282642554031509">
                          <link role="link" targetNodeId="3v.1161031609608070242" />
                        </node>
                      </node>
                      <node role="operation" type="jetbrains.mps.lang.smodel.structure.Node_GetAncestorOperation" id="8210282642554031510">
                        <node role="parameter" type="jetbrains.mps.lang.smodel.structure.OperationParm_Concept" id="8210282642554031511">
                          <node role="conceptArgument" type="jetbrains.mps.lang.smodel.structure.RefConcept_Reference" id="8210282642554031512">
                            <link role="conceptDeclaration" targetNodeId="3v.903970212124558174" resolveInfo="ModuleDefinition" />
                          </node>
                        </node>
                      </node>
                    </node>
                  </node>
                </node>
                <node role="statement" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement" id="8210282642554031513">
                  <node role="expression" type="jetbrains.mps.baseLanguage.structure.StaticMethodCall" id="8210282642554031514">
                    <link role="classConcept" targetNodeId="4.193653467006332497" resolveInfo="NameUtils" />
                    <link role="baseMethodDeclaration" targetNodeId="4.193653467006948696" resolveInfo="getModuleDefinitionName" />
                    <node role="actualArgument" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="8210282642554031515">
                      <node role="operand" type="jetbrains.mps.baseLanguage.structure.LocalVariableReference" id="8210282642554031516">
                        <link role="variableDeclaration" targetNodeId="8210282642554031504" resolveInfo="moduleDefinition" />
                      </node>
                      <node role="operation" type="jetbrains.mps.lang.smodel.structure.SPropertyAccess" id="8210282642554031517">
                        <link role="property" targetNodeId="4v.1169194664001" resolveInfo="name" />
                      </node>
                    </node>
                  </node>
                </node>
              </node>
            </node>
          </node>
          <node role="referenceMacro$link_attribute$variableDeclaration" type="jetbrains.mps.lang.generator.structure.ReferenceMacro" id="8210282642554031518">
            <node role="referentFunction" type="jetbrains.mps.lang.generator.structure.ReferenceMacro_GetReferent" id="8210282642554031519">
              <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="8210282642554031520">
                <node role="statement" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement" id="8210282642554031521">
                  <node role="expression" type="jetbrains.mps.baseLanguage.structure.StaticMethodCall" id="8210282642554031522">
                    <link role="classConcept" targetNodeId="4.193653467006332497" resolveInfo="NameUtils" />
                    <link role="baseMethodDeclaration" targetNodeId="4.193653467006344340" resolveInfo="getName" />
                    <node role="actualArgument" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="8210282642554031523">
                      <node role="operand" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="8210282642554031524">
                        <node role="operand" type="jetbrains.mps.lang.generator.structure.TemplateFunctionParameter_sourceNode" id="8210282642554031525" />
                        <node role="operation" type="jetbrains.mps.lang.smodel.structure.SLinkAccess" id="8210282642554031526">
                          <link role="link" targetNodeId="3v.1161031609608070242" />
                        </node>
                      </node>
                      <node role="operation" type="jetbrains.mps.lang.smodel.structure.SPropertyAccess" id="8210282642554031527">
                        <link role="property" targetNodeId="4v.1169194664001" resolveInfo="name" />
                      </node>
                    </node>
                  </node>
                </node>
              </node>
            </node>
          </node>
        </node>
      </node>
    </node>
  </node>
  <node type="jetbrains.mps.lang.generator.structure.MappingScript" id="8210282642554033713">
    <property name="name" value="Preprocessing" />
    <property name="package" value="Scripts" />
    <property name="scriptKind" value="pre_processing" />
    <property name="modifiesModel" value="true" />
    <node role="codeBlock" type="jetbrains.mps.lang.generator.structure.MappingScript_CodeBlock" id="8210282642554033714">
      <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="8210282642554033715" />
    </node>
  </node>
  <node type="jetbrains.mps.baseLanguage.structure.ClassConcept" id="8210282642554033722">
    <property name="package" value="Scripts" />
    <property name="name" value="ScriptUtils" />
    <node role="staticMethod" type="jetbrains.mps.baseLanguage.structure.StaticMethodDeclaration" id="8210282642554033729">
      <property name="name" value="ProcessDocument" />
      <node role="returnType" type="jetbrains.mps.baseLanguage.structure.VoidType" id="8210282642554033730" />
      <node role="visibility" type="jetbrains.mps.baseLanguage.structure.PublicVisibility" id="8210282642554033731" />
      <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="8210282642554033732" />
      <node role="parameter" type="jetbrains.mps.baseLanguage.structure.ParameterDeclaration" id="8210282642554033733">
        <property name="name" value="moduleDefinition" />
        <node role="type" type="jetbrains.mps.lang.smodel.structure.SNodeType" id="8210282642554033734">
          <link role="concept" targetNodeId="3v.903970212124558174" resolveInfo="ModuleDefinition" />
        </node>
      </node>
    </node>
    <node role="visibility" type="jetbrains.mps.baseLanguage.structure.PublicVisibility" id="8210282642554033723" />
    <node role="constructor" type="jetbrains.mps.baseLanguage.structure.ConstructorDeclaration" id="8210282642554033724">
      <node role="returnType" type="jetbrains.mps.baseLanguage.structure.VoidType" id="8210282642554033725" />
      <node role="visibility" type="jetbrains.mps.baseLanguage.structure.PublicVisibility" id="8210282642554033726" />
      <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="8210282642554033727" />
    </node>
    <node role="rootTemplateAnnotation$attribute" type="jetbrains.mps.lang.generator.structure.RootTemplateAnnotation" id="8210282642554033728" />
  </node>
  <node type="jetbrains.mps.lang.generator.structure.MappingConfiguration" id="8210282642554033782">
    <property name="name" value="ValueAssignment" />
    <property name="package" value="Assignments.ValueAssignment" />
    <node role="weavingMappingRule" type="jetbrains.mps.lang.generator.structure.Weaving_MappingRule" id="8210282642554033784">
      <property name="applyToConceptInheritors" value="true" />
      <link role="applicableConcept" targetNodeId="3v.9152698315526457500" resolveInfo="IValueAssignment" />
      <node role="contextNodeQuery" type="jetbrains.mps.lang.generator.structure.Weaving_MappingRule_ContextNodeQuery" id="8210282642554033785">
        <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="8210282642554033786">
          <node role="statement" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement" id="8210282642554033795">
            <node role="expression" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="8210282642554033796">
              <node role="operand" type="jetbrains.mps.lang.generator.generationContext.structure.TemplateFunctionParameter_generationContext" id="8210282642554033797" />
              <node role="operation" type="jetbrains.mps.lang.generator.generationContext.structure.GenerationContextOp_GetOutputByLabelAndInput" id="8210282642554033798">
                <link role="label" targetNodeId="8879198192717261064" resolveInfo="module_definition" />
                <node role="inputNode" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="8210282642554033808">
                  <node role="operand" type="jetbrains.mps.lang.generator.structure.TemplateFunctionParameter_sourceNode" id="8210282642554033809" />
                  <node role="operation" type="jetbrains.mps.lang.smodel.structure.Node_GetAncestorOperation" id="8210282642554033810">
                    <node role="parameter" type="jetbrains.mps.lang.smodel.structure.OperationParm_Concept" id="8210282642554033811">
                      <node role="conceptArgument" type="jetbrains.mps.lang.smodel.structure.RefConcept_Reference" id="8210282642554033812">
                        <link role="conceptDeclaration" targetNodeId="3v.903970212124558174" resolveInfo="ModuleDefinition" />
                      </node>
                    </node>
                  </node>
                </node>
              </node>
            </node>
          </node>
        </node>
      </node>
      <node role="ruleConsequence" type="jetbrains.mps.lang.generator.structure.TemplateDeclarationReference" id="8210282642554033800">
        <link role="template" targetNodeId="8879198192717261036" resolveInfo="weave_IValueAssignment" />
      </node>
    </node>
  </node>
  <node type="jetbrains.mps.lang.generator.structure.MappingConfiguration" id="8210282642554033813">
    <property name="package" value="Assignments.TypeAssignment" />
    <property name="name" value="TypeAssignment" />
    <node role="mappingLabel" type="jetbrains.mps.lang.generator.structure.MappingLabelDeclaration" id="1267847971803158685">
      <property name="name" value="type class container" />
      <link role="targetConcept" targetNodeId="2v.1068390468198" resolveInfo="ClassConcept" />
    </node>
    <node role="rootMappingRule" type="jetbrains.mps.lang.generator.structure.Root_MappingRule" id="8210282642554229622">
      <property name="applyToConceptInheritors" value="true" />
      <link role="applicableConcept" targetNodeId="3v.4056456322104744037" resolveInfo="ITypeAssignment" />
      <link role="template" targetNodeId="193653467007053042" resolveInfo="TypeAssignment" />
    </node>
    <node role="weavingMappingRule" type="jetbrains.mps.lang.generator.structure.Weaving_MappingRule" id="8210282642554033815">
      <property name="applyToConceptInheritors" value="true" />
      <link role="applicableConcept" targetNodeId="3v.4056456322104744037" resolveInfo="ITypeAssignment" />
      <node role="contextNodeQuery" type="jetbrains.mps.lang.generator.structure.Weaving_MappingRule_ContextNodeQuery" id="8210282642554033816">
        <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="8210282642554033817">
          <node role="statement" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement" id="8210282642554033826">
            <node role="expression" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="8210282642554033827">
              <node role="operand" type="jetbrains.mps.lang.generator.generationContext.structure.TemplateFunctionParameter_generationContext" id="8210282642554033828" />
              <node role="operation" type="jetbrains.mps.lang.generator.generationContext.structure.GenerationContextOp_GetOutputByLabelAndInput" id="8210282642554033829">
                <link role="label" targetNodeId="8879198192717261064" resolveInfo="module_definition" />
                <node role="inputNode" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="8210282642554229567">
                  <node role="operand" type="jetbrains.mps.lang.generator.structure.TemplateFunctionParameter_sourceNode" id="8210282642554229568" />
                  <node role="operation" type="jetbrains.mps.lang.smodel.structure.Node_GetAncestorOperation" id="8210282642554229569">
                    <node role="parameter" type="jetbrains.mps.lang.smodel.structure.OperationParm_Concept" id="8210282642554229570">
                      <node role="conceptArgument" type="jetbrains.mps.lang.smodel.structure.RefConcept_Reference" id="8210282642554229571">
                        <link role="conceptDeclaration" targetNodeId="3v.903970212124558174" resolveInfo="ModuleDefinition" />
                      </node>
                    </node>
                  </node>
                </node>
              </node>
            </node>
          </node>
        </node>
      </node>
      <node role="ruleConsequence" type="jetbrains.mps.lang.generator.structure.TemplateDeclarationReference" id="8210282642554033831">
        <link role="template" targetNodeId="789670156432271810" resolveInfo="weave_ITypeAssignment" />
      </node>
    </node>
  </node>
  <node type="jetbrains.mps.lang.generator.structure.TemplateDeclaration" id="8210282642554229637">
    <property name="name" value="weave_ParameterType" />
    <link role="applicableConcept" targetNodeId="3v.6716628601968810582" resolveInfo="ParameterType" />
    <node role="contentNode" type="jetbrains.mps.baseLanguage.structure.ClassConcept" id="8210282642554229654">
      <property name="name" value="_class_" />
      <node role="visibility" type="jetbrains.mps.baseLanguage.structure.PublicVisibility" id="8210282642554229655" />
      <node role="constructor" type="jetbrains.mps.baseLanguage.structure.ConstructorDeclaration" id="8210282642554229656">
        <node role="returnType" type="jetbrains.mps.baseLanguage.structure.VoidType" id="8210282642554229657" />
        <node role="visibility" type="jetbrains.mps.baseLanguage.structure.PublicVisibility" id="8210282642554229658" />
        <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="8210282642554229659" />
      </node>
      <node role="typeVariableDeclaration" type="jetbrains.mps.baseLanguage.structure.TypeVariableDeclaration" id="8210282642554229661">
        <property name="name" value="T" />
        <node role="templateFragment$attribute" type="jetbrains.mps.lang.generator.structure.TemplateFragment" id="8210282642554229662" />
        <node role="propertyMacro$property_attribute$name" type="jetbrains.mps.lang.generator.structure.PropertyMacro" id="8210282642554229663">
          <node role="propertyValueFunction" type="jetbrains.mps.lang.generator.structure.PropertyMacro_GetPropertyValue" id="8210282642554229664">
            <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="8210282642554229665">
              <node role="statement" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement" id="8210282642554229666">
                <node role="expression" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="8210282642554229668">
                  <node role="operand" type="jetbrains.mps.lang.generator.structure.TemplateFunctionParameter_sourceNode" id="8210282642554229667" />
                  <node role="operation" type="jetbrains.mps.lang.smodel.structure.SPropertyAccess" id="8210282642554229672">
                    <link role="property" targetNodeId="4v.1169194664001" resolveInfo="name" />
                  </node>
                </node>
              </node>
            </node>
          </node>
        </node>
      </node>
    </node>
  </node>
  <node type="jetbrains.mps.lang.generator.structure.TemplateDeclaration" id="8210282642554327043">
    <property name="name" value="weave_IntegerTypeForNamedType" />
    <property name="package" value="TypeRules.IntegerType" />
    <link role="applicableConcept" targetNodeId="3v.8702535492065731432" resolveInfo="IntegerType" />
    <node role="contentNode" type="jetbrains.mps.baseLanguage.structure.ClassConcept" id="8210282642554327063">
      <property name="name" value="_class_" />
      <node role="field" type="jetbrains.mps.baseLanguage.structure.FieldDeclaration" id="8210282642554327069">
        <property name="name" value="name" />
        <node role="visibility" type="jetbrains.mps.baseLanguage.structure.PublicVisibility" id="5934165724926716803" />
        <node role="type" type="jetbrains.mps.baseLanguage.structure.ClassifierType" id="8210282642554327073">
          <link role="classifier" targetNodeId="22.~IntegerType" resolveInfo="IntegerType" />
        </node>
        <node role="templateFragment$attribute" type="jetbrains.mps.lang.generator.structure.TemplateFragment" id="5934165724926314552" />
        <node role="propertyMacro$property_attribute$name" type="jetbrains.mps.lang.generator.structure.PropertyMacro" id="5934165724926412321">
          <node role="propertyValueFunction" type="jetbrains.mps.lang.generator.structure.PropertyMacro_GetPropertyValue" id="5934165724926412322">
            <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="5934165724926412323">
              <node role="statement" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement" id="5934165724926412324">
                <node role="expression" type="jetbrains.mps.baseLanguage.structure.CastExpression" id="5934165724926412333">
                  <node role="type" type="jetbrains.mps.baseLanguage.structure.StringType" id="5934165724926412336" />
                  <node role="expression" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="5934165724926412326">
                    <node role="operand" type="jetbrains.mps.lang.generator.generationContext.structure.TemplateFunctionParameter_generationContext" id="5934165724926412325" />
                    <node role="operation" type="jetbrains.mps.lang.generator.generationContext.structure.GenerationContextOp_StepObjectAccess" id="5934165724926412330">
                      <node role="userKey" type="jetbrains.mps.baseLanguage.structure.StringLiteral" id="5934165724926412332">
                        <property name="value" value="name" />
                      </node>
                    </node>
                  </node>
                </node>
              </node>
            </node>
          </node>
        </node>
        <node role="initializer" type="jetbrains.mps.baseLanguage.structure.CastExpression" id="5934165724926522707">
          <node role="type" type="jetbrains.mps.baseLanguage.structure.ClassifierType" id="5934165724926522708">
            <link role="classifier" targetNodeId="22.~IntegerType" resolveInfo="IntegerType" />
          </node>
          <node role="expression" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="5934165724926522711">
            <node role="operand" type="jetbrains.mps.baseLanguage.structure.StaticFieldReference" id="5934165724926522710">
              <link role="classifier" targetNodeId="23.~Builtin" resolveInfo="Builtin" />
              <link role="variableDeclaration" targetNodeId="23.~Builtin.primitiveDescriptors" resolveInfo="primitiveDescriptors" />
            </node>
            <node role="operation" type="jetbrains.mps.baseLanguage.structure.InstanceMethodCallOperation" id="5934165724926522715">
              <link role="baseMethodDeclaration" targetNodeId="8.~HashMap.get(java.lang.Object):java.lang.Object" resolveInfo="get" />
              <node role="actualArgument" type="jetbrains.mps.baseLanguage.structure.StringLiteral" id="5934165724926522718">
                <property name="value" value="INTEGER" />
              </node>
            </node>
          </node>
        </node>
      </node>
      <node role="visibility" type="jetbrains.mps.baseLanguage.structure.PublicVisibility" id="8210282642554327064" />
      <node role="constructor" type="jetbrains.mps.baseLanguage.structure.ConstructorDeclaration" id="8210282642554327065">
        <node role="returnType" type="jetbrains.mps.baseLanguage.structure.VoidType" id="8210282642554327066" />
        <node role="visibility" type="jetbrains.mps.baseLanguage.structure.PublicVisibility" id="8210282642554327067" />
        <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="8210282642554327068" />
      </node>
    </node>
  </node>
  <node type="jetbrains.mps.lang.generator.structure.MappingConfiguration" id="8210282642554715832">
    <property name="name" value="ParameterType" />
    <node role="weavingMappingRule" type="jetbrains.mps.lang.generator.structure.Weaving_MappingRule" id="8210282642554715833">
      <link role="applicableConcept" targetNodeId="3v.6716628601968810582" resolveInfo="ParameterType" />
      <node role="contextNodeQuery" type="jetbrains.mps.lang.generator.structure.Weaving_MappingRule_ContextNodeQuery" id="8210282642554715834">
        <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="8210282642554715835">
          <node role="statement" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement" id="8210282642554715836">
            <node role="expression" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="8210282642554715837">
              <node role="operand" type="jetbrains.mps.lang.generator.generationContext.structure.TemplateFunctionParameter_generationContext" id="8210282642554715838" />
              <node role="operation" type="jetbrains.mps.lang.generator.generationContext.structure.GenerationContextOp_GetOutputByLabelAndInput" id="8210282642554715839">
                <link role="label" targetNodeId="1267847971803158685" resolveInfo="type assignment" />
                <node role="inputNode" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="1267847971804528333">
                  <node role="operand" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="8210282642554715840">
                    <node role="operand" type="jetbrains.mps.lang.generator.structure.TemplateFunctionParameter_sourceNode" id="8210282642554715841" />
                    <node role="operation" type="jetbrains.mps.lang.smodel.structure.Node_GetAncestorOperation" id="8210282642554715842">
                      <node role="parameter" type="jetbrains.mps.lang.smodel.structure.OperationParm_Concept" id="8210282642554715843">
                        <node role="conceptArgument" type="jetbrains.mps.lang.smodel.structure.RefConcept_Reference" id="8210282642554715844">
                          <link role="conceptDeclaration" targetNodeId="3v.4056456322104744037" resolveInfo="ITypeAssignment" />
                        </node>
                      </node>
                    </node>
                  </node>
                  <node role="operation" type="jetbrains.mps.lang.smodel.structure.SLinkAccess" id="1267847971804528337">
                    <link role="link" targetNodeId="3v.9087026269843019313" />
                  </node>
                </node>
              </node>
            </node>
          </node>
        </node>
      </node>
      <node role="ruleConsequence" type="jetbrains.mps.lang.generator.structure.TemplateDeclarationReference" id="8210282642554715845">
        <link role="template" targetNodeId="8210282642554229637" resolveInfo="weave_ParameterType" />
      </node>
    </node>
  </node>
  <node type="jetbrains.mps.lang.generator.structure.MappingConfiguration" id="5934165724926522721">
    <property name="package" value="TypeRules.BooleanType" />
    <property name="name" value="BooleanType" />
    <node role="weavingMappingRule" type="jetbrains.mps.lang.generator.structure.Weaving_MappingRule" id="5934165724926522722">
      <link role="applicableConcept" targetNodeId="3v.7401774347124399993" resolveInfo="BooleanType" />
      <node role="contextNodeQuery" type="jetbrains.mps.lang.generator.structure.Weaving_MappingRule_ContextNodeQuery" id="5934165724926522724">
        <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="5934165724926522725">
          <node role="statement" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement" id="5934165724926522750">
            <node role="expression" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="5934165724926522752">
              <node role="operand" type="jetbrains.mps.lang.generator.generationContext.structure.TemplateFunctionParameter_generationContext" id="5934165724926522751" />
              <node role="operation" type="jetbrains.mps.lang.generator.generationContext.structure.GenerationContextOp_GetOutputByLabelAndInput" id="5934165724926522756">
                <link role="label" targetNodeId="1267847971803158685" resolveInfo="type assignment" />
                <node role="inputNode" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="1267847971803647732">
                  <node role="operand" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="5934165724926522759">
                    <node role="operand" type="jetbrains.mps.lang.generator.structure.TemplateFunctionParameter_sourceNode" id="5934165724926522758" />
                    <node role="operation" type="jetbrains.mps.lang.smodel.structure.Node_GetAncestorOperation" id="1267847971804428258">
                      <node role="parameter" type="jetbrains.mps.lang.smodel.structure.OperationParm_Concept" id="1267847971804428259">
                        <node role="conceptArgument" type="jetbrains.mps.lang.smodel.structure.RefConcept_Reference" id="1267847971804430492">
                          <link role="conceptDeclaration" targetNodeId="3v.4056456322104744037" resolveInfo="ITypeAssignment" />
                        </node>
                      </node>
                    </node>
                  </node>
                  <node role="operation" type="jetbrains.mps.lang.smodel.structure.SLinkAccess" id="1267847971803647737">
                    <link role="link" targetNodeId="3v.9087026269843019313" />
                  </node>
                </node>
              </node>
            </node>
          </node>
        </node>
      </node>
      <node role="ruleConsequence" type="jetbrains.mps.lang.generator.structure.TemplateDeclarationReference" id="5934165724926522728">
        <link role="template" targetNodeId="5934165724926522726" resolveInfo="weave_BooleanType" />
      </node>
      <node role="conditionFunction" type="jetbrains.mps.lang.generator.structure.BaseMappingRule_Condition" id="5934165724926522729">
        <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="5934165724926522730">
          <node role="statement" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement" id="5934165724926522734">
            <node role="expression" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="5934165724926522741">
              <node role="operand" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="5934165724926522736">
                <node role="operand" type="jetbrains.mps.lang.generator.structure.TemplateFunctionParameter_sourceNode" id="5934165724926522735" />
                <node role="operation" type="jetbrains.mps.lang.smodel.structure.Node_GetParentOperation" id="5934165724926522740" />
              </node>
              <node role="operation" type="jetbrains.mps.lang.smodel.structure.Node_IsInstanceOfOperation" id="5934165724926522745">
                <node role="conceptArgument" type="jetbrains.mps.lang.smodel.structure.RefConcept_Reference" id="5934165724926522749">
                  <link role="conceptDeclaration" targetNodeId="3v.4056456322104744037" resolveInfo="ITypeAssignment" />
                </node>
              </node>
            </node>
          </node>
        </node>
      </node>
    </node>
    <node role="weavingMappingRule" type="jetbrains.mps.lang.generator.structure.Weaving_MappingRule" id="5934165724926522764">
      <link role="applicableConcept" targetNodeId="3v.7401774347124399993" resolveInfo="BooleanType" />
      <node role="contextNodeQuery" type="jetbrains.mps.lang.generator.structure.Weaving_MappingRule_ContextNodeQuery" id="5934165724926522766">
        <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="5934165724926522767">
          <node role="statement" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement" id="5934165724926522796">
            <node role="expression" type="jetbrains.mps.baseLanguage.structure.AssignmentExpression" id="5934165724926522805">
              <node role="rValue" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="5934165724926522816">
                <node role="operand" type="jetbrains.mps.lang.smodel.structure.SNodeTypeCastExpression" id="5934165724926522814">
                  <link role="concept" targetNodeId="3v.7534685045991864887" resolveInfo="NamedType" />
                  <node role="leftExpression" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="5934165724926522809">
                    <node role="operand" type="jetbrains.mps.lang.generator.structure.TemplateFunctionParameter_sourceNode" id="5934165724926522808" />
                    <node role="operation" type="jetbrains.mps.lang.smodel.structure.Node_GetParentOperation" id="5934165724926522813" />
                  </node>
                </node>
                <node role="operation" type="jetbrains.mps.lang.smodel.structure.SPropertyAccess" id="5934165724926522820">
                  <link role="property" targetNodeId="4v.1169194664001" resolveInfo="name" />
                </node>
              </node>
              <node role="lValue" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="5934165724926522798">
                <node role="operand" type="jetbrains.mps.lang.generator.generationContext.structure.TemplateFunctionParameter_generationContext" id="5934165724926522797" />
                <node role="operation" type="jetbrains.mps.lang.generator.generationContext.structure.GenerationContextOp_StepObjectAccess" id="5934165724926522802">
                  <node role="userKey" type="jetbrains.mps.baseLanguage.structure.StringLiteral" id="5934165724926522804">
                    <property name="value" value="name" />
                  </node>
                </node>
              </node>
            </node>
          </node>
          <node role="statement" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement" id="1267847971804721905">
            <node role="expression" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="1267847971804721906">
              <node role="operand" type="jetbrains.mps.lang.generator.generationContext.structure.TemplateFunctionParameter_generationContext" id="1267847971804721907" />
              <node role="operation" type="jetbrains.mps.lang.generator.generationContext.structure.GenerationContextOp_GetOutputByLabelAndInput" id="1267847971804721908">
                <link role="label" targetNodeId="1267847971803158685" resolveInfo="type class container" />
                <node role="inputNode" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="1267847971804721909">
                  <node role="operand" type="jetbrains.mps.lang.generator.structure.TemplateFunctionParameter_sourceNode" id="1267847971804721910" />
                  <node role="operation" type="jetbrains.mps.lang.smodel.structure.Node_GetAncestorOperation" id="1267847971804721911">
                    <node role="parameter" type="jetbrains.mps.lang.smodel.structure.OperationParm_Concept" id="1267847971804721912">
                      <node role="conceptArgument" type="jetbrains.mps.lang.smodel.structure.RefConcept_Reference" id="1267847971804721913">
                        <link role="conceptDeclaration" targetNodeId="3v.1048767958318497761" resolveInfo="ASNType" />
                      </node>
                    </node>
                  </node>
                </node>
              </node>
            </node>
          </node>
        </node>
      </node>
      <node role="conditionFunction" type="jetbrains.mps.lang.generator.structure.BaseMappingRule_Condition" id="5934165724926522768">
        <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="5934165724926522769">
          <node role="statement" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement" id="5934165724926522770">
            <node role="expression" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="5934165724926522777">
              <node role="operand" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="5934165724926522772">
                <node role="operand" type="jetbrains.mps.lang.generator.structure.TemplateFunctionParameter_sourceNode" id="5934165724926522771" />
                <node role="operation" type="jetbrains.mps.lang.smodel.structure.Node_GetParentOperation" id="5934165724926522776" />
              </node>
              <node role="operation" type="jetbrains.mps.lang.smodel.structure.Node_IsInstanceOfOperation" id="5934165724926522781">
                <node role="conceptArgument" type="jetbrains.mps.lang.smodel.structure.RefConcept_Reference" id="5934165724926522783">
                  <link role="conceptDeclaration" targetNodeId="3v.7534685045991864887" resolveInfo="NamedType" />
                </node>
              </node>
            </node>
          </node>
        </node>
      </node>
      <node role="ruleConsequence" type="jetbrains.mps.lang.generator.structure.TemplateDeclarationReference" id="5934165724926522786">
        <link role="template" targetNodeId="5934165724926522784" resolveInfo="weave_BooleanType" />
      </node>
    </node>
  </node>
  <node type="jetbrains.mps.lang.generator.structure.TemplateDeclaration" id="5934165724926522726">
    <property name="name" value="weave_BooleanType" />
    <property name="package" value="TypeRules.BooleanType" />
    <link role="applicableConcept" targetNodeId="3v.7401774347124399993" resolveInfo="BooleanType" />
    <node role="contentNode" type="jetbrains.mps.baseLanguage.structure.ClassConcept" id="5934165724926522821">
      <property name="name" value="_class_" />
      <node role="visibility" type="jetbrains.mps.baseLanguage.structure.PublicVisibility" id="5934165724926522822" />
      <node role="constructor" type="jetbrains.mps.baseLanguage.structure.ConstructorDeclaration" id="5934165724926522823">
        <node role="returnType" type="jetbrains.mps.baseLanguage.structure.VoidType" id="5934165724926522824" />
        <node role="visibility" type="jetbrains.mps.baseLanguage.structure.PublicVisibility" id="5934165724926522825" />
        <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="5934165724926522826" />
      </node>
      <node role="superclass" type="jetbrains.mps.baseLanguage.structure.ClassifierType" id="5934165724926522827">
        <link role="classifier" targetNodeId="22.~BooleanType" resolveInfo="BooleanType" />
        <node role="templateFragment$attribute" type="jetbrains.mps.lang.generator.structure.TemplateFragment" id="5934165724926522828" />
      </node>
    </node>
  </node>
  <node type="jetbrains.mps.lang.generator.structure.TemplateDeclaration" id="5934165724926522784">
    <property name="name" value="weave_BooleanTypeForNamedType" />
    <property name="package" value="TypeRules.BooleanType" />
    <link role="applicableConcept" targetNodeId="3v.7401774347124399993" resolveInfo="BooleanType" />
    <node role="contentNode" type="jetbrains.mps.baseLanguage.structure.ClassConcept" id="5934165724926522829">
      <property name="name" value="_class_" />
      <node role="field" type="jetbrains.mps.baseLanguage.structure.FieldDeclaration" id="5934165724926522835">
        <property name="name" value="name" />
        <node role="visibility" type="jetbrains.mps.baseLanguage.structure.PublicVisibility" id="5934165724926522838" />
        <node role="type" type="jetbrains.mps.baseLanguage.structure.ClassifierType" id="5934165724926522839">
          <link role="classifier" targetNodeId="22.~BooleanType" resolveInfo="BooleanType" />
        </node>
        <node role="initializer" type="jetbrains.mps.baseLanguage.structure.CastExpression" id="5934165724926522856">
          <node role="type" type="jetbrains.mps.baseLanguage.structure.ClassifierType" id="5934165724926522861">
            <link role="classifier" targetNodeId="22.~BooleanType" resolveInfo="BooleanType" />
          </node>
          <node role="expression" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="5934165724926522842">
            <node role="operand" type="jetbrains.mps.baseLanguage.structure.StaticFieldReference" id="5934165724926522841">
              <link role="classifier" targetNodeId="23.~Builtin" resolveInfo="Builtin" />
              <link role="variableDeclaration" targetNodeId="23.~Builtin.primitiveDescriptors" resolveInfo="primitiveDescriptors" />
            </node>
            <node role="operation" type="jetbrains.mps.baseLanguage.structure.InstanceMethodCallOperation" id="5934165724926522846">
              <link role="baseMethodDeclaration" targetNodeId="8.~HashMap.get(java.lang.Object):java.lang.Object" resolveInfo="get" />
              <node role="actualArgument" type="jetbrains.mps.baseLanguage.structure.StringLiteral" id="5934165724926522849">
                <property name="value" value="BOOLEAN" />
              </node>
            </node>
          </node>
        </node>
        <node role="templateFragment$attribute" type="jetbrains.mps.lang.generator.structure.TemplateFragment" id="5934165724926522864" />
        <node role="propertyMacro$property_attribute$name" type="jetbrains.mps.lang.generator.structure.PropertyMacro" id="5934165724926522865">
          <node role="propertyValueFunction" type="jetbrains.mps.lang.generator.structure.PropertyMacro_GetPropertyValue" id="5934165724926522866">
            <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="5934165724926522867">
              <node role="statement" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement" id="5934165724926522868">
                <node role="expression" type="jetbrains.mps.baseLanguage.structure.CastExpression" id="5934165724926522877">
                  <node role="type" type="jetbrains.mps.baseLanguage.structure.StringType" id="5934165724926522880" />
                  <node role="expression" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="5934165724926522870">
                    <node role="operand" type="jetbrains.mps.lang.generator.generationContext.structure.TemplateFunctionParameter_generationContext" id="5934165724926522869" />
                    <node role="operation" type="jetbrains.mps.lang.generator.generationContext.structure.GenerationContextOp_StepObjectAccess" id="5934165724926522874">
                      <node role="userKey" type="jetbrains.mps.baseLanguage.structure.StringLiteral" id="5934165724926522876">
                        <property name="value" value="name" />
                      </node>
                    </node>
                  </node>
                </node>
              </node>
            </node>
          </node>
        </node>
      </node>
      <node role="visibility" type="jetbrains.mps.baseLanguage.structure.PublicVisibility" id="5934165724926522830" />
      <node role="constructor" type="jetbrains.mps.baseLanguage.structure.ConstructorDeclaration" id="5934165724926522831">
        <node role="returnType" type="jetbrains.mps.baseLanguage.structure.VoidType" id="5934165724926522832" />
        <node role="visibility" type="jetbrains.mps.baseLanguage.structure.PublicVisibility" id="5934165724926522833" />
        <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="5934165724926522834" />
      </node>
    </node>
  </node>
  <node type="jetbrains.mps.lang.generator.structure.TemplateDeclaration" id="6938031656093929744">
    <property name="name" value="weave_SequenceTypeForNamedType" />
    <property name="package" value="TypeRules.SequenceType" />
    <link role="applicableConcept" targetNodeId="3v.2745703621025106475" resolveInfo="SequenceType" />
    <node role="contentNode" type="jetbrains.mps.baseLanguage.structure.ClassConcept" id="6938031656093929768">
      <property name="name" value="_class_" />
      <node role="staticInnerClassifiers" type="jetbrains.mps.baseLanguage.structure.ClassConcept" id="6938031656094037014">
        <property name="name" value="SequenceTypeClass" />
        <property name="nonStatic" value="true" />
        <node role="visibility" type="jetbrains.mps.baseLanguage.structure.PublicVisibility" id="6938031656094037015" />
        <node role="constructor" type="jetbrains.mps.baseLanguage.structure.ConstructorDeclaration" id="6938031656094037016">
          <node role="returnType" type="jetbrains.mps.baseLanguage.structure.VoidType" id="6938031656094037017" />
          <node role="visibility" type="jetbrains.mps.baseLanguage.structure.PublicVisibility" id="6938031656094037018" />
          <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="6938031656094037019">
            <node role="statement" type="jetbrains.mps.baseLanguage.structure.SuperConstructorInvocation" id="6938031656094037020">
              <link role="baseMethodDeclaration" targetNodeId="22.~SequenceType.&lt;init&gt;()" resolveInfo="SequenceType" />
            </node>
          </node>
        </node>
        <node role="constructor" type="jetbrains.mps.baseLanguage.structure.ConstructorDeclaration" id="6938031656094037021">
          <node role="returnType" type="jetbrains.mps.baseLanguage.structure.VoidType" id="6938031656094037022" />
          <node role="visibility" type="jetbrains.mps.baseLanguage.structure.PublicVisibility" id="6938031656094037023" />
          <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="6938031656094037024">
            <node role="statement" type="jetbrains.mps.baseLanguage.structure.SuperConstructorInvocation" id="6938031656094037025">
              <link role="baseMethodDeclaration" targetNodeId="22.~SequenceType.&lt;init&gt;(asn.ASNDescriptor)" resolveInfo="SequenceType" />
              <node role="actualArgument" type="jetbrains.mps.baseLanguage.structure.ParameterReference" id="6938031656094037026">
                <link role="variableDeclaration" targetNodeId="6938031656094037027" resolveInfo="descriptor" />
              </node>
            </node>
          </node>
          <node role="parameter" type="jetbrains.mps.baseLanguage.structure.ParameterDeclaration" id="6938031656094037027">
            <property name="name" value="descriptor" />
            <node role="type" type="jetbrains.mps.baseLanguage.structure.ClassifierType" id="6938031656094037028">
              <link role="classifier" targetNodeId="23.~ASNDescriptor" resolveInfo="ASNDescriptor" />
            </node>
          </node>
        </node>
        <node role="superclass" type="jetbrains.mps.baseLanguage.structure.ClassifierType" id="6938031656094037029">
          <link role="classifier" targetNodeId="22.~SequenceType" resolveInfo="SequenceType" />
        </node>
        <node role="templateFragment$attribute" type="jetbrains.mps.lang.generator.structure.TemplateFragment" id="6938031656094037030" />
        <node role="propertyMacro$property_attribute$name" type="jetbrains.mps.lang.generator.structure.PropertyMacro" id="6938031656094037031">
          <node role="propertyValueFunction" type="jetbrains.mps.lang.generator.structure.PropertyMacro_GetPropertyValue" id="6938031656094037032">
            <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="6938031656094037033">
              <node role="statement" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement" id="6938031656094037034">
                <node role="expression" type="jetbrains.mps.baseLanguage.structure.CastExpression" id="6938031656094037035">
                  <node role="expression" type="jetbrains.mps.baseLanguage.structure.PlusExpression" id="6938031656094037036">
                    <node role="leftExpression" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="6938031656094037037">
                      <node role="operand" type="jetbrains.mps.lang.generator.generationContext.structure.TemplateFunctionParameter_generationContext" id="6938031656094037038" />
                      <node role="operation" type="jetbrains.mps.lang.generator.generationContext.structure.GenerationContextOp_StepObjectAccess" id="6938031656094037039">
                        <node role="userKey" type="jetbrains.mps.baseLanguage.structure.StringLiteral" id="6938031656094037040">
                          <property name="value" value="name" />
                        </node>
                      </node>
                    </node>
                    <node role="rightExpression" type="jetbrains.mps.baseLanguage.structure.StringLiteral" id="6938031656094037041">
                      <property name="value" value="_type" />
                    </node>
                  </node>
                  <node role="type" type="jetbrains.mps.baseLanguage.structure.StringType" id="6938031656094037042" />
                </node>
              </node>
            </node>
          </node>
        </node>
        <node role="nodeMacro$attribute" type="jetbrains.mps.lang.generator.structure.MapSrcNodeMacro" id="1267847971805686154">
          <link role="mappingLabel" targetNodeId="1267847971803158685" resolveInfo="type class container" />
          <node role="sourceNodeQuery" type="jetbrains.mps.lang.generator.structure.SourceSubstituteMacro_SourceNodeQuery" id="1267847971805688385">
            <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="1267847971805688386">
              <node role="statement" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement" id="1267847971805688387">
                <node role="expression" type="jetbrains.mps.lang.generator.structure.TemplateFunctionParameter_sourceNode" id="1267847971805688388" />
              </node>
            </node>
          </node>
        </node>
      </node>
      <node role="field" type="jetbrains.mps.baseLanguage.structure.FieldDeclaration" id="6938031656094034765">
        <property name="name" value="name" />
        <node role="visibility" type="jetbrains.mps.baseLanguage.structure.PublicVisibility" id="6938031656094034766" />
        <node role="type" type="jetbrains.mps.baseLanguage.structure.ClassifierType" id="6938031656094034767">
          <link role="classifier" targetNodeId="6938031656094037014" resolveInfo="SequenceTypeClass" />
        </node>
        <node role="initializer" type="jetbrains.mps.baseLanguage.structure.GenericNewExpression" id="6938031656094034768">
          <node role="creator" type="jetbrains.mps.baseLanguage.structure.ClassCreator" id="6938031656094034769">
            <link role="baseMethodDeclaration" targetNodeId="6938031656094037021" resolveInfo="SequenceTypeClass" />
            <node role="actualArgument" type="jetbrains.mps.baseLanguage.structure.ThisExpression" id="6938031656094034770" />
          </node>
        </node>
        <node role="templateFragment$attribute" type="jetbrains.mps.lang.generator.structure.TemplateFragment" id="6938031656094034771" />
        <node role="propertyMacro$property_attribute$name" type="jetbrains.mps.lang.generator.structure.PropertyMacro" id="6938031656094034772">
          <node role="propertyValueFunction" type="jetbrains.mps.lang.generator.structure.PropertyMacro_GetPropertyValue" id="6938031656094034773">
            <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="6938031656094034774">
              <node role="statement" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement" id="6938031656094034775">
                <node role="expression" type="jetbrains.mps.baseLanguage.structure.CastExpression" id="6938031656094034776">
                  <node role="expression" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="6938031656094034777">
                    <node role="operand" type="jetbrains.mps.lang.generator.generationContext.structure.TemplateFunctionParameter_generationContext" id="6938031656094034778" />
                    <node role="operation" type="jetbrains.mps.lang.generator.generationContext.structure.GenerationContextOp_StepObjectAccess" id="6938031656094034779">
                      <node role="userKey" type="jetbrains.mps.baseLanguage.structure.StringLiteral" id="6938031656094034780">
                        <property name="value" value="name" />
                      </node>
                    </node>
                  </node>
                  <node role="type" type="jetbrains.mps.baseLanguage.structure.StringType" id="6938031656094034781" />
                </node>
              </node>
            </node>
          </node>
        </node>
      </node>
      <node role="visibility" type="jetbrains.mps.baseLanguage.structure.PublicVisibility" id="6938031656093929769" />
      <node role="constructor" type="jetbrains.mps.baseLanguage.structure.ConstructorDeclaration" id="6938031656093929770">
        <node role="returnType" type="jetbrains.mps.baseLanguage.structure.VoidType" id="6938031656093929771" />
        <node role="visibility" type="jetbrains.mps.baseLanguage.structure.PublicVisibility" id="6938031656093929772" />
        <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="6938031656093929773" />
      </node>
      <node role="superclass" type="jetbrains.mps.baseLanguage.structure.ClassifierType" id="6938031656094037012">
        <link role="classifier" targetNodeId="23.~ASNDescriptor" resolveInfo="ASNDescriptor" />
      </node>
    </node>
  </node>
</model>

